J'ai une mise en page avec quelques vues, dont l'une est un EditText. La mise en page s'adapte facilement à une page, MAIS, quand le clavier logiciel est sorti, la mise en page ne défile pas .
<?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"
Android:background="@drawable/background" >
<ScrollView
Android:id="@+id/ScrollView1"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentTop="true" >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical" >
<CheckBox/>
<TextView/>
<LinearLayout>
<EditText>
<requestFocus />
</EditText>
</LinearLayout>
<TextView/>
<LinearLayout>
<Spinner/>
</LinearLayout>
</LinearLayout>
</ScrollView>
<Button
Android:layout_alignParentBottom="true" />
</RelativeLayout>
Et dans mon manifeste, j'ai déclaré l'attribut:
Android:windowSoftInputMode="adjustResize|stateHidden"
Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas et comment s'assurer que cela fonctionne?
Merci d'avance!
Ok, apparemment, le Android:layout_height
du ScrollView ne doit pas être défini sur wrap_content
. Je le règle sur match_parent
et le Android:layout_above
sur le bouton en bas de la page.
Ne me demandez pas pourquoi, mais cela a résolu le problème.
J'ai eu le même problème et j'ai vérifié mon activité dans le manifeste. La raison pour laquelle cela ne fonctionnait pas, c'est parce que je n'ai pas utilisé cette propriété:
Android:windowSoftInputMode="adjustResize"
Maintenant, cela fonctionne très bien et pas besoin de faire des ancres supplémentaires.
Dans mon cas, rien de ce qui précède n'a fonctionné.
J'ai eu item name="Android:windowTranslucentStatus">true</item>
dans mon thème. Et cela a été corrigé en définissant Android:fitsSystemWindows="true"
dans la disposition parente où se trouve scrollview.
Ajoutez Android:windowSoftInputMode="stateHidden|adjustResize"
à votre balise dans le fichier AndroidManifest.xml. Cela entraînera le redimensionnement de l'écran vers la gauche après l'affichage du clavier virtuel. Ainsi, vous pourrez faire défiler facilement.
Essayez de définir ScrollView en tant que disposition parent. Cela fonctionne comme un charme pour moi!
Mon problème était avec un HorizontalScrollView. Dans mon cas, je devais définir HorizontalScrollView sur:
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Et retirez:
Android:layout_above="@+id/closeButton"
Android:layout_below="@+id/logo"
Dans le fichier AndroidManifest.xml, l'activité est définie sur:
Android:windowSoftInputMode=""
J'espère que cela aide tous ceux qui rencontrent ce bogue étrange.