如何让谷歌地图视图始终显示在我的布局底部?

时间:2017-10-18 09:28:34

标签: android google-maps layout view

我希望地图显示在屏幕底部,而ScrollView只允许在它之前滚动。问题是,当我有超过x TextViews(在ScrollView中)时,地图会从屏幕上消失,我甚至无法通过滚动到底部看到他。

我有一个包含几个带有TextViews的LinearLayouts的ScrollView,最后是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"/>

3 个答案:

答案 0 :(得分:1)

您可以尝试以下代码:

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

答案 1 :(得分:0)

使用RelativeLayout作为父级,然后使用属性

添加MapView
alignParentBottom=true

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

答案 2 :(得分:0)

试试这个。

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