为什么我不能将任何Android的UI元素放在地图片段的顶部?

时间:2018-02-22 09:19:48

标签: android android-layout

我有一个谷歌地图,这是在开始一个新项目时创建地图活动时的默认布局:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.xxxxx.xxxxx.xxxxx.xxxxx.MapsActivity" />

当我进入设计视图时,我希望能够将按钮拖到地图/片段上。但似乎不允许行为。

是否无法将UI组件拖到地图上?那与iOS不同。

如果是这样,我会使用线性布局,然后在其中包含片段和按钮吗?

感谢。

3 个答案:

答案 0 :(得分:1)

是的,您必须将片段包装在其他布局中,例如Framelayout。

答案 1 :(得分:1)

您可以使用包含Fragment的标准MapView,只需将View设置为显示在其上。

请记住将视图放在地图下方的xml中。

E.g:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.paylock.geoalarmlite.page.LocationFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/location_outer_container">

    <com.google.android.gms.maps.MapView
        android:id="@+id/map_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </com.google.android.gms.maps.MapView>

    <ImageView
        android:layout_width="..."
        android:layout_height="..."
        android:layout_centerInParent="true"
        android:adjustViewBounds="true"
        android:src="..."
        android:tint="...." />

答案 2 :(得分:0)

检查此代码并使用如下: -

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <com.google.android.gms.maps.MapView
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.v7.widget.CardView
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:layout_gravity="bottom"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:elevation="1dp"
        card_view:cardCornerRadius="8dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/area_no"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="16dp"
                android:layout_marginTop="4dp"
                android:text="26"
                android:textColor="@color/colorPrimaryDark"

                />

            <TextView
                android:id="@+id/area_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/area_no"
                android:layout_marginLeft="16dp"
                android:layout_marginTop="10dp"
                android:maxLines="1"
                android:text="Velachery Rd Dandeeswarar Nagar"
                android:textColor="@color/colorPrimaryDark" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/area_name"
                android:layout_margin="8dp"
                android:orientation="horizontal"
                android:weightSum="2">

                <Button
                    android:id="@+id/btEnterManually"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/round_button"
                    android:text="select manual location"
                    android:textColor="@color/colorLogo"
                    android:textSize="12sp" />

                <View
                    android:layout_width="2dp"
                    android:layout_height="match_parent" />

                <Button
                    android:id="@+id/bt"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/round_button"
                    android:text="Confirm order address"
                    android:textColor="@color/colorLogo"
                    android:textSize="12sp" />


            </LinearLayout>
        </RelativeLayout>

    </android.support.v7.widget.CardView>


</FrameLayout>