2010-07-09 2 views
16

Je souhaite créer une activité avec une barre de titre en haut et une barre de navigation en bas. J'ai utilisé include pour inclure la disposition de la barre de titre et la disposition de la barre de navigation dans la disposition principale, comme vous pouvez le voir ci-dessous. Le résultat est que la barre de titre et la barre de navigation vont en haut de l'écran. Quelqu'un pourrait-il me dire pourquoi? Merci!Qu'est-ce qui ne va pas avec mon inclusion dans RelativeLayout?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/home_widget" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/background"> 

    <include android:id="@+id/title_bar" layout="@layout/title_bar" 
     android:layout_alignParentTop="true" /> 

    <include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" 
     android:layout_alignParentBottom="true"/> 
</RelativeLayout> 

[Modifier] Je ne trouve pas la cause racine. Mais les travaux suivants:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/home_widget" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background"> 

<RelativeLayout android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:id="@+id/title_bar" > 

    <include layout="@layout/title_bar" /> 
</RelativeLayout> 

<RelativeLayout android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:id="@+id/navigation_bar" > 

    <include layout="@layout/navigation_bar" /> 
</RelativeLayout> 
+0

vous êtes dans un relativelayout, je pense que vous avez oublié android: layout_below = "@ id/title_bar" pour votre barre de navigation – Sephy

+1

S'il vous plaît mettre à jour votre question pour afficher le contenu de 'res/layout/title_bar .xml' et 'res/layout/navigation_bar.xml', puis @ moi de retour. – CommonsWare

Répondre

0

Vous n'avez rien à remplir l'espace entre la barre supérieure et inférieure par l'apparence de celui-ci.

En tant que côté, j'ai tendance à utiliser LinearLayout à la place et à utiliser l'attribut layout_weight de la façon suivante;

title_bar & navigation_bar get layout_weight = "0" et le contenu entre les deux reçoit layout_weight = "1". Ceci indique au gestionnaire de disposition de développer le contenu pour remplir l'espace entre les deux si votre disposition linéaire est;

title_bar contenu navigation_bar

44

Pour remplacer les attributs de la mise en page vous y compris, vous devez également remplacer à la fois la largeur et la hauteur de mise en page de mise en page. Si ces deux paramètres ne sont pas remplacés, tous les autres changements de disposition que vous essayez seront ignorés.

Votre mise en page ci-dessus

<include android:id="@+id/title_bar" layout="@layout/title_bar" 
    android:layout_alignParentTop="true" 
/> 
<include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" 
    android:layout_alignParentBottom="true"/> 

devrait en fait être avec une teneur en pellicule ou remplir des parents, le cas échéant.

<include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true"/> 
+0

si muet, re-déclarant layout_width & layout_height dans la mise en page qui utilise l'include. Cela fonctionne bien. –

+0

wow, ne le savais pas. bon conseil. mon include ne se positionnait pas dans une disposition relative et le réglage de la largeur et de la hauteur le faisait respecter le flot de mise en page. merci – speedynomads

+1

cela devrait être la réponse acceptée – d370urn3ur

Questions connexes