2012-10-30 17 views
8

Ecco un layout:Android morbido layout di tastiera bottino quando appare

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <FrameLayout 
      android:layout_width="match_parent" 
      android:layout_height="0px" 
      android:layout_weight="1" /> 

     <FrameLayout 
      android:background="#0000ff" 
      android:layout_width="match_parent" 
      android:layout_height="0px" 
      android:layout_weight="1" /> 

     <FrameLayout 
      android:layout_width="match_parent" 
      android:layout_height="0px" 
      android:layout_weight="1" /> 

    </LinearLayout> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" /> 

</RelativeLayout> 

enter image description here

voglio barra blu di rimanere intatto quando EditText viene toccato e appare tastiera virtuale. Cioè Voglio che le sue dimensioni e la sua posizione siano preservate. Ho provato tutti e quattro i possibili valori per il parametro android:windowSoftInputMode della mia attività in AndroidManifest. E sempre il mio bar si muove blu o si restringe sulla tastiera virtuale che appare:

android:windowSoftInputMode="adjustUnspecified" o per difetto:

enter image description here

android:windowSoftInputMode="adjustPan" o android:windowSoftInputMode="adjustNothing":

enter image description here

android:windowSoftInputMode="adjustResize":

enter image description here

E 'mai possibile mantenere la stessa dimensione e posizione quando viene visualizzato il tasto software?

+4

ho provato con 'adjustNothing' e sembra funzionare sul mio dispositivo (Google Nexus) – fiddler

risposta

1

Dal momento che l'input sta entrando in uno EditText, verrà sempre spostato qualcosa.

Considerare di avere due layout, uno per quando la tastiera è abbassata, uno per quando la tastiera è attiva.

L'utilizzo di un ViewSwitcher può essere d'aiuto.

0

Penso che sia a causa del LinearLayout che si sta utilizzando. Puoi per favore cambiare il layout interno con il relativo layout? Nella tua situazione attuale, la tastiera cambia semplicemente i margini tra i componenti a causa del layout lineare. E cambia la tua configurazione con adjustNothing.

1

come layout principale è necessario utilizzare <ScrollView>. esempio:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    .... 
</ScrollView> 

o utilizzare questo codice in AndroidManifest.xml:

<activity 
    android:windowSoftInputMode="adjustNothing"> 
</activity> 
Problemi correlati