【问题标题】:Two Navigation Drawer on same Activity同一活动上的两个导航抽屉
【发布时间】:2015-04-28 13:42:32
【问题描述】:

是否可以在同一个活动上配置两个导航抽屉,一个从左到右?

【问题讨论】:

标签: android navigation-drawer


【解决方案1】:

你可以使用抽屉布局

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

同时检查文档https://developer.android.com/training/implementing-navigation/nav-drawer.html

确保您使用的是工具栏而不是操作栏

【讨论】:

  • 哇,太感谢了! android:layout_gravity="end" 太棒了
【解决方案2】:

是的,您可以在抽屉布局中添加两个 ListView,一个 listview 应该有 gravity start 和其他有 end

【讨论】:

    【解决方案3】:

    是的

    可以使用两个导航抽屉

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

    【讨论】:

      【解决方案4】:

      为了最大限度地定制, 在您的 xml 中,您可以使用 FrameLayout 作为容器

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

      现在在您的 Activity 中,您可以将其替换为任何片段

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

      现在对于两个用户,您可以创建 2 个不同的片段,您可以查看我的样板代码以供参考

      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

      【讨论】:

        猜你喜欢
        • 2020-06-02
        • 1970-01-01
        • 2013-09-12
        • 1970-01-01
        • 1970-01-01
        • 2014-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多