Two Navigation Drawer on same Activity

前端 未结 4 2153
盖世英雄少女心
盖世英雄少女心 2020-12-01 17:22

Is it possible to configurate two Navigation Drawers on the same activity, one from the left and the other from the right?

相关标签:
4条回答
  • 2020-12-01 17:32

    You can use drawer layout

     <android.support.v4.widget.DrawerLayout
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/drawer_layout"
       android:layout_width="match_parent"
       android:layout_height="match_parent">
       <!-- The main content view -->
    
       <FrameLayout
          android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    
    <!-- The navigation drawer -->
        <ListView android:id="@+id/left_drawer"
           android:layout_width="240dp"
           android:layout_height="match_parent"
           android:layout_gravity="start"
           android:choiceMode="singleChoice"
           android:divider="@android:color/transparent"
           android:dividerHeight="0dp"
           android:background="#111"/>
    
    
       <ListView android:id="@+id/right_drawer"
           android:layout_width="240dp"
           android:layout_height="match_parent"
           android:layout_gravity="end"
           android:choiceMode="singleChoice"
           android:divider="@android:color/transparent"
           android:dividerHeight="0dp"
           android:background="#111"/>
     </android.support.v4.widget.DrawerLayout>
    

    ALso check the documantation https://developer.android.com/training/implementing-navigation/nav-drawer.html

    Make sure you are using toolbar not action bar

    0 讨论(0)
  • 2020-12-01 17:44

    For maximum customization, In your xml, you can use a FrameLayout as a container

       <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true">
    
        <FrameLayout
            android:id="@+id/contDrawer"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </android.support.design.widget.NavigationView>
    

    Now in your Activity, you can replace it with any fragment

    getSupportFragmentManager().beginTransaction().replace(R.id.contDrawer, SideBarCustomerFragment.newInstance()).commit();
    

    Now for two users, you can create 2 different fragments, You can check my boilerplate code for reference

    https://github.com/hamzaahmedkhan/AndroidStructure/blob/master/app/src/main/java/com/android/structure/activities/HomeActivity.java

    https://github.com/hamzaahmedkhan/AndroidStructure/blob/master/app/src/main/java/com/android/structure/activities/BaseActivity.java

    0 讨论(0)
  • 2020-12-01 17:47

    yes

    Can use two navigationdrawer

    <android.support.v4.widget.DrawerLayout
    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"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    tools:context="PackageName.ActivityName">
    
    <ScrollView
        android:id="@+id/scrol_lay"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <!-- your layout -->
    
    </ScrollView>
    <!-- First navigation drawer -->
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view_main"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:menu="@menu/navigation_main_menu"
        app:headerLayout="@layout/navigation_header"/>
    
    
    <!-- Second navigation drawer -->
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view_second"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        app:menu="@menu/navigation_menu"
        app:headerLayout="@layout/navigation_header"/>
    </android.support.v4.widget.DrawerLayout>
    
    0 讨论(0)
  • 2020-12-01 17:53

    Yes you can add two ListView inside your drawer layout, one listview should have gravity start and other have end.

    0 讨论(0)
提交回复
热议问题