Android Mise en page avec ListView entre une “barre du haut” et “bas de bar”
Je suis en train de construire une mise en page où il y a un texte dans la partie supérieure de l'écran et une barre de menu au bas de l'écran.
Chacun de ces points de vue doivent rester fixe en lieu et entre les 2, il faut une ListView.
TOPBAR
LISTVIEW (scrollable)
BOTTOM BAR
Ma mise en page (voir ci-dessous) presque œuvres: le haut et le bas des composants de rester fixe et la liste des parchemins. Le "problème" est que la dernière ligne de ma ListView reste caché derrière la barre du bas.
Des suggestions sur la façon d'ajuster la mise en page?
Merci!
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_alignParentTop="true"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TextView
android:background="@drawable/blackgrad"
android:gravity="center"
android:id="@+id/title"
android:layout_height="50dip"
android:layout_width="fill_parent"
android:text="blah blah"
android:textColor="#ffffff"
android:textSize="18sp"
/>
<ListView
android:background="#ffffff"
android:cacheColorHint="#ffffffff"
android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
</LinearLayout>
<LinearLayout
android:background="#efefef"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:orientation="horizontal">
<Button
android:layout_height="wrap_content"
android:id="@+id/back"
android:text="Back"
android:layout_width="wrap_content" />
<Button
android:layout_height="wrap_content"
android:id="@+id/home"
android:text="Home"
android:layout_width="wrap_content" />
<Button
android:layout_height="wrap_content"
android:id="@+id/next"
android:text="Next"
android:layout_width="wrap_content" />
</LinearLayout>
</RelativeLayout>
InformationsquelleAutor user141146 | 2010-10-21
Vous devez vous connecter pour publier un commentaire.
Voici une simple suggestion. Faire un nouveau XML et avoir un aller avec ce.
Le problème de la Fpo en matière de mise en page, c'est que la première linéaire modèle
android:layout_height="fill_parent"
qui va provoquer la première linéaire de mise en page pour remplir le parent. Il ne sait pas que vous allez à ajouter d'autres points de vue. Ce que vous avez à faire est d'ajouter des points de vue dans l'ordre qu'ils savent que leur taille. Vous connaissez donc la taille de la partie supérieure nominale et la barre du bas, vous pouvez les ajouter en tant queandroid:layout_height="wrap_content"
. Puis ajouter la liste car il est inconnu au moment de la compilation.J'ai accompli ce que vous essayez de le faire d'une manière semblable, à l'aide de l'IDs et les layout_below/layout_above attributs. Le
View
s sont disposés d'une manière différente, mais le résultat final est le même. UnListView
entre deux autresLinearLayout
s, l'un en haut et un en bas.Dans le
ListView
vous pouvez le voir, j'ai:Ces attributs de position de la
ListView
entre mon haut et en basLinearLayout
s.J'ai eu ce genre de problème. J'ai utilisé trois mises en page au lieu de deux, et ce genre de solution :
et la chose la plus importante (le problème): - je ajouter android:layout_marginBottom à la mise en page contenant la liste. J'ai eu à faire plusieurs ajustement à la valeur avant de trouver la marge suffisante.
J'ai trouvé un autre moyen de le faire avec layout_weight est alors enfermé dans un linéaire de la mise en page. Si vous définissez la liste du poids de quelque chose arbitrairement grand et le statique bas de la barre de poids à quelque chose de très petit, l'effet fonctionne. Les deux à la liste d'affichage et la barre du bas, la hauteur doit être réglé sur "wrap_content" pour que tout fonctionne ensemble.
J'ai trouvé je pense que le plus simple solution de cette post
Il suffit de déclarer les deux barres AVANT de l'viewlist l'ajout d'android:layout_alignParentBottom="true" et android:layout_alignParentTop="true" dans chaque cas.
Alors préciser dans le viewlist mise en page qu'il a établi entre eux avec android:layout_above="id_of_footer" et android:layout_below="id_of_header" propriétés.
C'est l'exemple de travail à partir de mon application. Juste avec la barre de pied de page.