这是我的android xml地图源代码 - 底栏布局。我在屏幕上显示一个巨大的地图,我需要在屏幕底部有一个30dp的高布局,以显示一些像图像一样的标签。如何将水平线性布局推到页面底部?
<?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 :(得分:9)
使用android:layout_alignParentBottom="true"
在linearlayout的父级底部设置linearlayout,为mapview设置android:layout_above
,将mapview设置在linearlayout之上。
您的代码将是:
<?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>
答案 1 :(得分: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>
答案 2 :(得分:0)
使用RelativeLayout的属性,例如android:layout_alignParentBottom
和android: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>
答案 3 :(得分:-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>