2011-12-30 15 views
5

Questo è il mio codice sorgente Android xml per una mappa - layout barra inferiore. Sto visualizzando una grande mappa sullo schermo e ho bisogno di un layout alto 30dp nella parte inferiore dello schermo per visualizzare alcune schede come immagini. Come spingo il layout lineare orizzontale in fondo alla pagina?Layout barra inferiore in 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

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

risposta

9

Usa android:layout_alignParentBottom="true" per impostare il LinearLayout sul fondo del genitore per LinearLayout e android:layout_above per mapview per impostare il mapview sopra il LinearLayout.

vostro codice sarà:

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

provare il seguente schema. L'utilizzo di android:layout_alignParentBottom="true" non sarà sufficiente in quanto il MapView con android:layout_height="fill_parent" riempirà l'intero schermo e nasconderà il LinearLayout. Devi anche aggiungere android:layout_above="@id/menu" in modo che non lo nasconda.

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

si sovrapporrà alla mappa –

+0

Perché? È uguale al tuo. – 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

per errore ho modificato la tua risposta, mi dispiace –

0

utilizzare le proprietà del RelativeLayout, come android:layout_alignParentBottom e android:layout_above.

vorrei fare qualcosa di simile:

<?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> 
Problemi correlati