【问题标题】:How to open side navigation in full screen如何全屏打开侧边导航
【发布时间】:2019-11-23 09:48:35
【问题描述】:

我在我的应用中添加了navigation drawer,它的打开方式如下

但我想像下面一样将抽屉打开到全宽。

我检查了一些关于 SO 的答案,并将边距设置为 -64dp 但这没有帮助,是否可以将导航抽屉的宽度设置为全屏。

【问题讨论】:

  • 您还需要能够拖动它打开和关闭吗?如果没有,最好的办法可能是摆脱DrawerLayout,并在该侧为全宽View/Fragment 设置动画。

标签: android android-layout navigation-drawer android-drawer


【解决方案1】:

只需在导航视图中添加此代码即可

android:layout_gravity="start"
android:fitsSystemWindows="true"
android:layout_marginEnd="-65dp"
android:layout_marginRight="-65dp"

【讨论】:

    【解决方案2】:

    你可以试试这个

    <android.support.design.widget.NavigationView
            android:id="@+id/navigationView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:fitsSystemWindows="true"
            android:layout_marginEnd="-65dp"
            android:layout_marginRight="-65dp"
            app:itemTextAppearance="@style/TextAppearance.AppCompat.Small"
            app:headerLayout="@layout/drawer_header">
    

    【讨论】:

      【解决方案3】:

      试试这个!!!完美运行

      <android.support.design.widget.NavigationView
          android:id="@+id/nav_view"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:layout_gravity="start"
          android:fitsSystemWindows="true"
          android:layout_marginEnd="-65dp"
          android:layout_marginRight="-65dp"
          app:itemTextColor="@color/lightgray"
          app:itemIconTint="@color/colorAccent"
          app:headerLayout="@layout/nav_header_main"
          app:menu="@menu/activity_main_drawer" />
      

      【讨论】:

        【解决方案4】:

        在 android 中设置全宽导航抽屉

        只需调用此方法并将您的抽屉布局作为参数传递。

        public static void fixDrawerMargin(DrawerLayout drawerLayout) {
                try {
                    Field f = DrawerLayout.class.getDeclaredField("mMinDrawerMargin");
                    f.setAccessible(true);
                    f.set(drawerLayout, 0);
        
                    drawerLayout.requestLayout();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        

        【讨论】:

          【解决方案5】:

          试试这个代码:

          <android.support.design.widget.NavigationView
                  android:id="@+id/nav_view"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:layout_gravity="start"
                  android:layout_marginEnd="-65dp"
                  android:layout_marginRight="-65dp"
                  android:fitsSystemWindows="true">
                />
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-07-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-17
            相关资源
            最近更新 更多