Android GoogleMap重叠了Views onResume

时间:2014-04-11 18:57:48

标签: android google-maps overlay google-maps-android-api-2

我在GoogleMap中显示RelativeLayout,其中包含TextView(以及其他内容):

<RelativeLayout
    width=match_parent
    height=match_parent>
    <Map
        width=match_parent
        height=match_parent />
    <TextView
        with=100dp
        height=100dp />
</RelativeLayout>

出于某种原因,如果我回家,然后重新打开应用程序,地图将覆盖(覆盖)TextView

我尝试使用SupportMapFragmentMapView(使用zOrderOnTop="false")但没有效果。 我还尝试在onResume / onPause中显示/隐藏地图,没有效果。

我也有Drawer issue,但建议的解决方案只解决了Drawer问题。

版本: com.google.android.gms:play-services:4.2.+ compileSdkVersion 19 minSdkVersion 14 targetSdkVersion 14

注意:此问题仅发生在Samsung Galaxy SII(4.0.4)上。 任何的想法?感谢。

更新:我还尝试从代码而不是XML中膨胀Fragment,或者使用GoogleMapOptions来设置zOrderOnTop(false),但结果仍相同......

更新2:我想我缩小了问题范围:

工作:

drawer.xml

<Drawer>
    <RelativeLayout
        width=match_parent
        height=match_parent>
        <RelativeLayout
            width=match_parent
            height=match_parent>
            <Map
                width=match_parent
                height=match_parent>
            <View
                width=match_parent
                height=match_parent
                background=transparent>
        </RelativeLayout>

        <TextView
            width=100dp
            height=100dp>
    </RelativeLayout>

    <ListView /> <!-- menu -->
</Drawer>

不工作:

drawer.xml

<Drawer>
    <FrameLayout /> <!-- fragment container -->

    <ListView /> <!-- menu -->
</Drawer>

map.xml

<RelativeLayout
    width=match_parent
    height=match_parent>
    <RelativeLayout
        width=match_parent
        height=match_parent>
        <Map
            width=match_parent
            height=match_parent>
        <View
            width=match_parent
            height=match_parent
            background=transparent>
    </RelativeLayout>

    <TextView
        width=100dp
        height=100dp>
</RelativeLayout>

一种解决方案是在drawer.xml中声明Map,然后在需要时使用setVisibility显示/隐藏它......有什么更好的建议吗?

1 个答案:

答案 0 :(得分:0)

你应该尝试:

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

    <!-- Extra hack ViewGroup to fix Map z-ordering -->
    <RelativeLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <Map
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <View 
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/transparent"/>

    </RelativeLayout>

    <TextView
        with=100dp
        height=100dp />

</RelativeLayout>

至少对我而言,这足以解决z-order的问题。我相信这个问题只对Jellybean设备产生影响,这就解释了为什么你会在你的SII上看到它。