2011-12-30 75 views
5

這是我的android xml源代碼,用於地圖 - 底欄佈局。我在屏幕上顯示一個巨大的地圖,我需要在屏幕底部有一個30dp高的佈局來顯示一些像圖像一樣的選項卡。我如何將水平線性佈局推到頁面底部?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

看到這一點:http://stackoverflow.com/questions/36019986/which-view-should-be-used-for-new-material-design-bottom-導航/ 42119958#42119958 – Fartab 2017-02-08 17:48:54

回答

9

使用android:layout_alignParentBottom="true"以父爲的LinearLayout底部和android:layout_above爲MapView類設置的LinearLayout設置的LinearLayout以上的MapView。

您的代碼將是:

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

請嘗試以下佈局。使用android:layout_alignParentBottom="true"將不夠,因爲帶有android:layout_height="fill_parent"的MapView將填滿整個屏幕並隱藏LinearLayout。您還必須添加android:layout_above="@id/menu",因此它不會隱藏它。

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

佈局會重疊地圖 – 2011-12-30 11:51:29

+0

爲什麼?和你的一樣。 – Flo 2011-12-30 11:56:52

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

錯誤我編輯了你的答案,對不起 – 2011-12-30 11:56:24

0

使用的RelativeLayout,的性質等android:layout_alignParentBottomandroid:layout_above

我會做這樣的事情:

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