2011-12-30 5 views
5

Ceci est mon code source de code XML pour une carte de la barre inférieure. J'affiche une énorme carte dans l'écran et j'ai besoin d'une mise en page de 30dp au bas de l'écran pour afficher quelques images comme des onglets. Comment puis-je pousser la disposition linéaire horizontale au bas de la page?Disposition de barre inférieure dans android

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height=" what here ? " 
    android:layout_width="fill_parent" 
    android:orientation="vertical"> 
    <com.google.android.maps.MapView 
     android:id="@+id/map_view" 
     Map goes here. Almost full screen. Exactly full - 30dp; 

     /> 
    <LinearLayout> 
     I want 3 images here. Bottom of the screen. 
    </LinearLayout> 
</RelativeLayout> 
+0

voir ceci: http://stackoverflow.com/questions/36019986/which-view-should-be-used-for-new-material-design-bottom- navigation/42119958 # 42119958 – Fartab

Répondre

9

Utilisez android:layout_alignParentBottom="true" pour régler la LinearLayout au bas du parent pour LinearLayout et android:layout_above pour MapView pour régler le MapView au-dessus du LinearLayout.

Votre code sera:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:orientation="vertical"> 

    <LinearLayout android:layout_height="30dip" 
     android:layout_width="fill_parent" 
     android:layout_alignParentBottom="true" 
     android:id="@+id/linearLayout1" 
    > 
     <!-- ... --> 
    </LinearLayout> 

    <com.google.android.maps.MapView 
     android:id="@+id/map_view" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:layout_above="@+id/linearLayout1" 
    /> 
</RelativeLayout> 
-2

Essayez la mise en page suivante. L'utilisation de android:layout_alignParentBottom="true" ne sera pas suffisante car MapView avec android:layout_height="fill_parent" remplira tout l'écran et masquera le LinearLayout. Vous devez également ajouter android:layout_above="@id/menu" afin qu'il ne le cache 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" > 

    <com.google.android.maps.MapView 
     android:id="@+id/map" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@id/menu" 
     android:apiKey="@string/google_maps_api_key" 
     android:clickable="true" /> 

    <LinearLayout 
     android:id="@+id/menu" 
     android:layout_width="fill_parent" 
     android:layout_height="30dp" 
     android:layout_alignParentBottom="true" > 
    </LinearLayout> 

</RelativeLayout> 
+0

la disposition chevauchera la carte –

+0

Pourquoi? C'est pareil que le tien. – Flo

1
<?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" > 

    <com.google.android.maps.MapView 
     android:id="@+id/map_view" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/rel_bottom" /> 

    <RelativeLayout 
     android:id="@+id/rel_bottom" 
     android:layout_width="fill_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_height="30dp" > 

     <ImageView 
      android:id="@+id/img1" 
      android:layout_width="40dp" 
      android:layout_height="fill_parent" /> 

     <ImageView 
      android:id="@+id/img2" 
      android:layout_width="40dp" 
      android:layout_height="fill_parent" 
      android:layout_toRightOf="@+id/img1" /> 

     <ImageView 
      android:id="@+id/img3" 
      android:layout_width="40dp" 
      android:layout_height="fill_parent" 
      android:layout_toRightOf="@+id/img2" /> 
    </RelativeLayout> 

</RelativeLayout> 
+0

par erreur j'ai édité votre réponse, désolé –

0

utiliser les propriétés du RelativeLayout, comme android:layout_alignParentBottom et android:layout_above.

je ferais quelque chose comme ceci:

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

    <LinearLayout 
     android:id="@+id/footer" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:width="fill_parent" 
     android:height="30dp"> 

      add your images here 

    </LinearLayout> 

    <com.google.android.maps.MapView 
     android:id="@+id/map_view" 
     android:height="fill_parent" 
     android:width="fill_parent" 
     android:layout_alignParentTop="true" 
     android:layout_above="@id/footer"/> 

</RelativeLayout> 
Questions connexes