use*_*095 37 android android-menu android-support-library android-design-library android-navigationview
<android.support.design.widget.NavigationView
android:id="@+id/drawer_nav"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
app:headerLayout="@layout/drawer_header"
app:menu="@menu/menu_drawer"
/>
Run Code Online (Sandbox Code Playgroud)
我android.support.design.library
用于材料设计.
我想要的是在用户未登录时隐藏一些菜单项.
现在我无法获取菜单项NavigationView
.
我试过了:
MenuItem logoutItem = (MenuItem) mNavigationView.findViewById(R.id.menu_logout);
logoutItem.setVisible(false);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我怎样才能做到这一点?
谢谢.
N J*_*N J 90
你可以通过NavigationView.getMenu()的方法得到它
Menu menuNav = mNavigationView.getMenu();
Run Code Online (Sandbox Code Playgroud)
然后你可以找到具体的项目
MenuItem logoutItem = menuNav.findItem(R.id.menu_logout);
Run Code Online (Sandbox Code Playgroud)
小智 7
我想你应该先得到这样的菜单:
navigationView.getMenu().findItem(R.id.login).setVisible(false);
Run Code Online (Sandbox Code Playgroud)
这段代码的主要方面是调用navigationView.getMenu()从中获取菜单,你将获得当前膨胀菜单的引用并调用findViewById(),之后你可以随意使用.
对于项目组ex: -
<group
android:id="@+id/group_1"
android:checkableBehavior="single"
android:visible="false">
...
Run Code Online (Sandbox Code Playgroud)
然后你可以使用以下方法控制:
navigationView.getMenu().setGroupVisible(R.id.group_1, true)
Run Code Online (Sandbox Code Playgroud)
只是使用下面的方式
nav_draw = (NavigationView) findViewById(R.id.nav_draw);
nav_draw.getMenu().findItem(R.id.navigation_item_1).setVisible(false);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23942 次 |
最近记录: |