如何使谷歌地图视图始终出现在布局的底部



我希望地图固定在屏幕底部显示,而ScrollView只允许在其之前滚动。问题是,当我有超过x个文本视图(在ScrollView中)时,地图会从屏幕上消失,即使滚动到底部,我也看不到他。

我有一个ScrollView,其中包含几个带有TextView的线性布局,最后的地图视图如下所示:'

            ...
            <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 作为父级,然后添加带有 atribute 的 MapView

alignParentBottom=true

这个属性和其他一些属性应该给你结果。

试试这个。

<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"
            />

最新更新