我怎样才能使谷歌地图视图总是出现在我的布局的底部?
问题描述:
我想让地图看起来固定在屏幕的底部,而ScrollView只允许在它之前滚动。问题是,当我有超过x个TextViews(在ScrollView中)时,地图从屏幕上消失,我甚至不能通过滚动底部看到他。我怎样才能使谷歌地图视图总是出现在我的布局的底部?
我有一个包含几个LinearLayouts与TextViews并在最后的MapView这样的滚动型:`
...
<LinearLayout
android:id="@+id/details_neighbours_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="@dimen/details_separator_height"
android:orientation="horizontal"
android:padding="@dimen/historic_margin_separator_medium"
android:visibility="gone"
android:weightSum="3">
<TextView
android:id="@+id/neighbours_title"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@string/neighbours"
android:textColor="@color/color_light_grey_text"
android:textSize="@dimen/primary_text_size"
android:textStyle="bold" />
<TextView
android:id="@+id/neighbours_text"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center_vertical|right"
android:paddingLeft="4dp"
android:text=""
android:textColor="@color/color_light_grey_text"
android:textSize="@dimen/tertiary_text_size" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
<!-- Map view -->
<com.google.android.gms.maps.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:visibility="visible"/>
答
你可以试试下面的代码:
<?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">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1">
<LinearLayout
android:id="@+id/details_neighbours_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight=".2"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:id="@+id/neighbours_title"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="abc"
android:textStyle="bold" />
<TextView
android:id="@+id/neighbours_text"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="2"
android:gravity="center_vertical|right"
android:paddingLeft="4dp"
android:text="xyz" />
</LinearLayout>
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<com.google.android.gms.maps.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible" />
</LinearLayout>
</RelativeLayout>
答
使用RelativeLayout的父,然后用属性附加伤害
alignParentBottom=true
这个附加的MapView和其他一些属性应该给你的结果。
答
尝试。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scrollbars="none"
>
<!-- Your TextViews -->
</ScrollView>
<com.google.android.gms.maps.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>