2

[已解决] 我将此添加到 MainActivity XML 文件中:

<FrameLayout
    android:id="@+id/place_map_here"
    android:layout_height="match_parent"
    android:layout_width="match_parent"/>
<FrameLayout
    android:id="@+id/bugfixview"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:background="@android:color/transparent"/>

以及我改变片段的地方:

mapFragment = new FragmentMapView();
android.app.FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.place_map_here, mapFragment, "map");
ft.commit();

编辑:刚刚意识到我不使用 MapFragment xml 文件。(旧版本很抱歉)

我已将 Fragment 更改为 MapFragment,现在我的 NavigationDrawer 滑入 MapFragment 后面 :( 代码:

MapFragmant xml(删除的代码)

主要活动 xml。这是我的抽屉声明

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >


<android.support.v4.widget.DrawerLayout         xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

<FrameLayout
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</FrameLayout>
<ListView
    android:id="@+id/drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="#333"
    android:choiceMode="singleChoice"/>
</android.support.v4.widget.DrawerLayout>    
</RelativeLayout>

我希望这是你需要的信息,让你像往常一样很棒,帮助像我这样的菜鸟:)

4

3 回答 3

1

试试这个技巧,它可能会对你有所帮助,只需将你的布局更改为如下所示:

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

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" >

    <android.support.v4.widget.DrawerLayout
     android:id="@+id/drawer_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent" >


    <!-- hack to fix ugly black Background with maps v2 -->

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

</LinearLayout>
于 2014-01-08T13:34:24.560 回答
0

我们可以通过使用布局中地图片段下方的视图来解决 NavigationDrawer 落后于 MapFragment 的问题。

例如 -

<FrameLayout
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

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


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

于 2014-01-16T12:05:25.270 回答
0

DrawerLayout 需要成为您布局的根,因此请尝试删除 RelativeLayout。我假设您将 MapFragment 附加到 FrameLayout,main。

另外,你用的是什么api版本?我注意到 api<10 上有一些奇怪的图形错误,包括黑色边框和带有地图片段和抽屉的黑色闪烁背景。

于 2014-01-07T18:25:00.030 回答