2013-03-10 18 views
24

Ho un pulsante "Salva" che voglio spingere su insieme con la tastiera virtuale. Pertanto, quando l'utente fa clic su EditText nel mio layout, il pulsante deve rimanere sopra la tastiera. Ora il pulsante diventa nascosto sotto la tastiera. Come fai a fare questo?Android: Come premere il tasto sopra la tastiera virtuale

Grazie in anticipo!

+1

http: // android-developers.blogspot.com/2009/04/updating-applications-for-on-screen.html – CommonsWare

+0

@CommonsWare in realtà, l'articolo di riferimento non è di aiuto qui. OP ha un pulsante sotto il suo campo EditText (un layout comune). Non c'è in realtà alcun modo per far apparire EditText ** e il pulsante ** usando le impostazioni del metodo di input standard. Sfortunato. –

+1

@DavidWasser: quindi fai in modo che il pulsante di azione dell'IME faccia la stessa cosa del pulsante nascosto. – CommonsWare

risposta

58
<activity 
    android:windowSoftInputMode="adjustResize" 
> 

provare questo

+0

Ok, ci sto provando proprio ora. – Xander

+0

buona fortuna, spero che questo lavoro – Intathep

+0

Ha funzionato! Ma non completamente come previsto. Vedi questo nuovo numero: http://stackoverflow.com/questions/15343355/android-scrollview-not-scrolling-with-keyboard-out – Xander

9

Insieme con la risposta di Inthathep, è necessario aggiungere un attributo nel genitore viewgroup

android:fitsSystemWindows="true" 

di lavorare, se lo desideri. cioè, nel file manifesto, per l'attività di aggiungere

android:windowSoftInputMode="adjustResize" 

e ad es.

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:padding="10dp" 
android:fitsSystemWindows="true" <!-- add this --> 
android:orientation="vertical" 
> 
<EditText 
    android:id="@+id/et_assetview_comment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:minHeight="80dp" 
    android:background="@color/white" 
    android:hint="Enter comments" 
    /> 
<Button 
    android:id="@+id/btn_assetview_postcomment" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="POST" 
    /> 

6

Quindi questo è un post piuttosto vecchio, ma ho lottato con le risposte fornite. Sia oneavi che Intahep sono corretti, ma lascia che ti mostri ESATTAMENTE dove va il android:windowSoftInputMode="adjustResize".

in Android Manifest

<activity android:name=".DataScreen" /> 
    <activity android:name=".PauseScreen" /> 
    <activity android:name=".RouteInfo" 
       android:windowSoftInputMode="adjustResize"> <!--This goes in the specific activity with the button --> 
    </activity> 
2

Ordinare il layout come questo e sarà in grado pulsante per mettere sopra la tastiera

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/button_next" 
     android:background="#0ff" 
     > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      > 

      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="250dp" 
       android:hint="Hint" 
       /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="ABC" 
       android:textSize="50sp" 
       /> 
     </LinearLayout> 
    </ScrollView> 

    <Button 
     android:id="@+id/button_next" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     android:layout_alignParentBottom="true" 
     android:layout_margin="10dp" 
     android:text="Button Next" 
     /> 

</RelativeLayout> 

in Android manifesta

<application 
     ... 
     > 
     <activity android:name=".YourActivity" 
      android:windowSoftInputMode="adjustResize" 
      > 
     </activity> 
</application> 

enter image description here

Si noti che, invece di RelativeLayout, è anche possibile utilizzare un altro ViewGroup come LinearLayout con il peso, CordinatorLayout, ...

0

La sua grande opera in cui sia pulsante e EditText visibile quando si apre la tastiera ...

+0

Si prega di non aggiungere "grazie" come risposta. Invece, vota le risposte che trovi utili. - [Dalla recensione] (/ recensione/post di bassa qualità/18496087) – pirho

Problemi correlati