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 __ !!!
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.
Essayez d'utiliser
Android:windowSoftInputMode="adjustPan|adjustResize"
pour l'activité.
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
Essaye ça:
Android:windowSoftInputMode="adjustNothing"
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"