如何隐藏NavigationView?android:visibility="gone"无效。

4
我正在为我的应用程序使用两个NavigationView,一个左边的和一个右边的,并且只希望在特定条件下显示右侧的NavigationView。因此,在布局文件中将其可见性设置为“GONE”,并在需要时使其可见。但是即使将其设置为“GONE”,右侧的NavigationView仍然会出现。有什么想法如何隐藏它吗?
<include
    layout="@layout/app_bar_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<com.example.girishkhatri.tt0401.NavigationViewRight
    android:id="@+id/nav_right_view"
    android:layout_width="wrap_content"
    android:layout_height="600dp"
    android:layout_marginTop="80dp"
    android:layout_gravity="right"
    android:fitsSystemWindows="true"
    android:visibility="gone"    //not working as expected 
   app:itemBackground="@drawable/nav_item_selector"
    app:headerLayout="@layout/nav_header_right"
     app:menu="@menu/activity_right_drawer" />


gravity 属性添加到右侧...它会起作用。 - Hanzala
3个回答

7

使用以下代码从未打开NavigationView。

DrawerLayout mDrawerLayout = (DrawerLayout) getActivity().findViewById(R.id.drawer_layout);
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);

谢谢Tsuyoshi Hiraga,它运行得很好。锁定抽屉布局,请使用drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)。解锁抽屉布局,请使用drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNDEFINED)。 - tanrobles

1
如果您想防止用户打开抽屉并希望在特殊情况下显示它,最好使用lockunlock来控制抽屉。
为抽屉设置监听器,在其OnDrawerClosed中再次锁定它。
每当您需要显示抽屉时,先解锁它,然后调用打开它的方法。

谢谢,它有效了。我在 NavigationDrawer 中锁定了 NavigationView,并在需要它的活动中解锁。 - user7154703

0
请尝试使用layout_gravity="end"。

layout_gravity 指定了NavigationView从哪里出现。 - Shmuser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接