MapFragment后面的导航抽屉

时间:2014-01-06 11:00:00

标签: android google-maps navigation-drawer mapfragment

[已解决]我将此添加到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(已移除的代码)

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

我希望这是你需要像往常一样棒极了的信息,并帮助像我这样的新人:)

3 个答案:

答案 0 :(得分:1)

试试这个hack它可能对你有所帮助,只需将你的布局改为:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我们可以通过使用布局中地图片段下面的视图来解决在MapFragment后面的NavigationDrawer。

例如 -

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