user3871754 user3871754 - 5 months ago 36
Android Question

SupportMapFragment and DrawerLayout in one AppCompatActivity

My hierarchy:

<android.support.v4.widget.DrawerLayout
<android.support.v7.widget.Toolbar
<fragment "com.google.android.gms.maps.SupportMapFragment"
<android.support.design.widget.NavigationView


Exception:

Caused by: java.lang.IllegalArgumentException: Binary XML file line
#9: Duplicate id 0x7f0d007b, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.SupportMapFragment


After commenting out map or navigation drawer app start working correctly.

How to make
SupportMapFragment
and
DrawerLayout
in one
Activity
and what is the reason for this exeption?

Answer

Use this Way :

Dependency section of my build.gradle :

 dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.android.gms:play-services:7.8.0'
    compile 'com.android.support:design:23.0.0'
}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    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
        android:id="@+id/drawer"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

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

             <android.support.design.widget.FloatingActionButton
                android:id="@+id/add"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_margin="16dp"
                android:clickable="true"
                android:src="@drawable/ic_maps_navigation"
                app:backgroundTint="#777"
                android:layout_gravity="bottom|end"/>

        </FrameLayout>

        <FrameLayout
            android:id="@+id/nav_container"
            android:layout_gravity="start"
            android:layout_width="240dp"
            android:layout_height="fill_parent"/>

    </android.support.v4.widget.DrawerLayout>

</RelativeLayout>
Comments