在地图视图上添加视图叠加层 android

Add a view overlay on map view android

我正在全屏使用 Google Map Android SDK 中的 MapView,但我需要在 mapview 上显示另一个透明的全视图。叠加层按预期显示,但是,尽管有叠加层,但仍可以控制地图(可以单击标记,可以移动地图)。

如何确保叠加层防止地图在可见时受到控制?

您可以通过将叠加层设为可点击来实现此目的。将以下代码添加到叠加视图的 xml

android:clickable="true"

例如我使用下面的代码在页面中添加一个按钮

<?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"
android:orientation="vertical">

<fragment
    android:id="@+id/location_map"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#359c5e"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:padding="8dp"
    android:layout_margin="5dp"
    android:text="@string/go"
    android:textColor="#ffffff" />

</RelativeLayout>

在您的叠加视图父布局上添加以下内容。

android:focusable="true"
android:focusableInTouchMode="true"
android:clickable="true"

请记住,您需要在叠加视图的父布局上放置行上方