web-dev-qa-db-fra.com

la disposition de l'écran se déplace vers le haut lorsque le clavier est affiché

Disons que j'ai la mise en page suivante:

http://i47.tinypic.com/2vchnih.png

quand je clique sur le texte d'édition en bas, je reçois ceci:

http://i45.tinypic.com/352lym9.png

Comme vous pouvez le constater, l'image du haut passe en haut et l'ensemble de la mise en page se déplace . Ceci est mon xml pour cette mise en page:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
   Android:layout_width="fill_parent"
   Android:layout_height="fill_parent"
   Android:background="#FFFFFF" >

   <LinearLayout
       Android:id="@+id/header"
       Android:layout_width="fill_parent"
       Android:layout_height="75dp"
       Android:layout_alignParentLeft="true"
       Android:layout_alignParentRight="true"
       Android:layout_alignParentTop="true"        
       Android:isScrollContainer="true"
       Android:background="@drawable/header" >
   </LinearLayout>

   <ScrollView
       Android:layout_width="fill_parent"
       Android:layout_height="wrap_content"
       Android:id="@+id/scrollauthentication"
       Android:layout_below="@+id/header"
       Android:background="#FFFFFF"
       Android:fillViewport="true" >

       <RelativeLayout
           xmlns:Android="http://schemas.Android.com/apk/res/Android"
           Android:layout_width="fill_parent"
           Android:layout_height="wrap_content"
           Android:background="#FFFFFF" 
           Android:id="@+id/authenticationrelativelayout">

           <TextView
               Android:id="@+id/login"
               Android:layout_width="wrap_content"
               Android:layout_height="wrap_content"
               Android:layout_alignParentLeft="true"
               Android:layout_below="@+id/header"
               Android:layout_marginLeft="30dp"
               Android:layout_marginTop="20dp"
               Android:text="login"
               Android:textAppearance="?android:attr/textAppearanceMedium"
               Android:textColor="@color/lighter_orange"
               Android:textSize="28dp" />

           <TextView
               Android:id="@+id/usernameTextView"
               Android:layout_width="wrap_content"
               Android:layout_height="wrap_content"
               Android:layout_alignLeft="@+id/login"
               Android:layout_below="@+id/login"
               Android:layout_marginTop="16dp"
               Android:text="username"
               Android:textAppearance="?android:attr/textAppearanceMedium"
               Android:textColor="@color/dark_gray" />

           <EditText
               Android:id="@+id/user"
               Android:layout_width="260dp"
               Android:layout_height="42dp"
               Android:layout_alignLeft="@+id/usernameTextView"
               Android:layout_below="@+id/usernameTextView"
               Android:background="@drawable/edittext_selector"
               Android:imeOptions="actionDone"
               Android:lines="1"
               Android:paddingLeft="10dp" />

           <TextView
               Android:id="@+id/passwordTextView"
               Android:layout_width="wrap_content"
               Android:layout_height="wrap_content"
               Android:layout_alignLeft="@+id/user"
               Android:layout_below="@+id/user"
               Android:text="password"
               Android:textAppearance="?android:attr/textAppearanceMedium"
               Android:textColor="@color/dark_gray" />

           <EditText
               Android:id="@+id/password"
               Android:layout_width="260dp"
               Android:layout_height="42dp"
               Android:layout_alignLeft="@+id/passwordTextView"
               Android:layout_below="@+id/passwordTextView"
               Android:background="@drawable/edittext_selector"
               Android:imeOptions="actionDone"
               Android:inputType="textPassword"
               Android:lines="1"
               Android:paddingLeft="10dp" >

               <requestFocus />
           </EditText>

           <CheckBox
               Android:id="@+id/remembercheckBox"
               Android:layout_width="wrap_content"
               Android:layout_height="wrap_content"
               Android:layout_alignLeft="@+id/password"
               Android:layout_below="@+id/password"
               Android:layout_marginTop="37dp"
               Android:button="@drawable/checkbox_selector"
               Android:focusable="true" />

           <TextView
               Android:id="@+id/rememberText"
               Android:layout_width="wrap_content"
               Android:layout_height="wrap_content"
               Android:layout_alignBaseline="@+id/remembercheckBox"
               Android:layout_alignBottom="@+id/remembercheckBox"
               Android:layout_toRightOf="@+id/remembercheckBox"
               Android:text="Remember me"
               Android:textAppearance="?android:attr/textAppearanceMedium"
               Android:textColor="@color/dark_gray" />
       </RelativeLayout>
   </ScrollView>

   <LinearLayout
       Android:layout_width="fill_parent"
       Android:layout_height="wrap_content"
       Android:layout_marginLeft="30dp"
       Android:layout_below="@+id/scrollauthentication"
       Android:orientation="horizontal" >

       <Button
           Android:id="@+id/loginButton"
           Android:layout_width="wrap_content"
           Android:layout_height="wrap_content"
           Android:background="@color/button_selected"
           Android:text="log in"
           Android:textColor="@drawable/textblack_selected"
           Android:textStyle="bold" >
       </Button>

       <Button
           Android:id="@+id/forgotten"
           Android:layout_width="wrap_content"
           Android:layout_height="wrap_content"
           Android:layout_marginLeft="10dp"
           Android:background="@color/button_selected"
           Android:text="forgotten password"
           Android:textColor="@drawable/textblack_selected"
           Android:textStyle="bold" />
   </LinearLayout>

</RelativeLayout>

Et j'ai aussi mis ceci dans le fichier manifeste pour cette activité:

Android:windowSoftInputMode="adjustPan"

Alors, y a-t-il un moyen d'empêcher ma mise en page de bouger lorsque le clavier est affiché? Merci __ !!!

18
adrian

eh bien, je n'ai pas mentionné de "windowSoftInputMode" dans le manifeste de mon application et cela fonctionne correctement. L'écran ne remonte pas lorsque le clavier s'ouvre. Essayez cette approche - supprimez simplement le paramètre "windowSoftInputMode" de votre manifeste.

10
Yogesh Somani

Essayez d'utiliser

Android:windowSoftInputMode="adjustPan|adjustResize"

pour l'activité.

28
SALMAN

Mon EditText a également continué à progresser.

Ajouter de la gravité au texte modifié semble résoudre le problème ... Le clavier a poussé mon texte d'édition vers le haut, j'ai donc ajouté la gravité au bas du texte d'édition dans le code XML.

Android:gravity=bottom
2
Roberto Gutierrez

Essaye ça:

Android:windowSoftInputMode="adjustNothing"
1
Rahul

J'avais déjà un windowsoftInputMode pour empêcher le clavier de s'ouvrir, alors ajoutez simplement le code de commentaire

Android: windowSoftInputMode = "stateHidden | adjustPan | adjustResize"

0
Charlie