J'ai besoin d'un formulaire utilisateur plus grand que l'écran. La mise en page consiste en une "zone de titre" fixe, le formulaire (dans une vue de défilement éventuellement) et un bouton en bas. J'ai créé trois mises en page et la mise en page du milieu est un ScrollView avec un LinearLayout orienté verticalement. Malheureusement, la forme pousse les boutons de l'écran ?!Comment mettre en forme un formulaire qui défile dans Android SDK?
Existe-t-il un exemple simple pour cela? Je suppose que je peux utiliser un ListView, mais je pense que mon ScrollView est plus facile à gérer. Voici ma mise en page ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- Title Area on top -->
<LinearLayout
android:id="@+id/layout_form"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="0dip"
android:layout_marginBottom="0dip"
android:paddingTop="20dip"
android:paddingBottom="20dip"
android:paddingLeft="5dip"
android:paddingRight="10dip"
android:src="@drawable/logo"
android:layout_gravity="center"
android:layout_weight="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="2"
android:layout_marginTop="0dip"
android:layout_marginBottom="0dip"
android:layout_marginLeft="4dip"
android:layout_marginRight="4dip"
android:text="@string/title_create"
/>
</LinearLayout>
<!-- Form entry on top -->
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:clipChildren="true"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="8dip"
android:layout_marginRight="8dip"
android:text="@string/label_field_one"
/>
<EditText
android:id="@+id/edit_field_one"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:hint="@string/hint_field_one"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="8dip"
android:layout_marginRight="8dip"
android:text="@string/label_field_two"
/>
<EditText
android:id="@+id/edit_field_two"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:hint="@string/hint_field_two"
/>
<!-- Repeat label-text and edit-text until done ... -->
</LinearLayout>
</ScrollView>
<!-- "spring" between form and wizard buttons. -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="2"
>
<Button
android:id="@+id/btn_submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:text="@string/button_submit"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
Oui, je suis à la recherche de header (instruction)/footer (actionable) avec un formulaire qui défile au milieu. Je vais le coder dès maintenant et vous dire si cela fonctionne pour ma mise en page. – mobibob
Cela a fonctionné. Mais maintenant, la méthode de saisie ne se comporte pas comme je le souhaite (problème différent et éventuellement nouvelles questions). Je ne reçois pas le bouton NEXT et l'immobilier est trop encombré lorsque vous touchez pour entrer des données. – mobibob
Le problème de l'immobilier est juste une limitation de la taille de l'écran, vraiment (l'application facebook est un excellent (terrible?) Exemple), mais je crois que vous pouvez ouvrir le clavier en plein écran ou pousser le contenu EditText dans la zone restante. Aussi, je crois que vous devez spécifier dans les cases EditText qu'ils devraient fournir un bouton "Next" pour le clavier, mais malheureusement je n'ai pas trop fait avec ce genre de chose moi-même, alors vous pouvez jeter une autre question pour ça. – kcoppock