<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"
/>
我正在使用android.support.design.library
进行材料设计。
我想要的是在用户未登录时隐藏一些菜单项。
现在我无法在NavigationView
中获取菜单项。
我试过了:
MenuItem logoutItem = (MenuItem) mNavigationView.findViewById(R.id.menu_logout);
logoutItem.setVisible(false);
但它不起作用。
我该怎么做?
感谢。
答案 0 :(得分:86)
您可以通过 NavigationView.getMenu()
的方法获得该功能$xml->xpath('a:LeggeRegionale[@id="urn:nir:legge:2014-12-12;26"]/a:articolato/a:articolo[@id="art41"]/a:comma[@id="art41-com1"]/a:alinea')
然后你可以通过
找到具体的项目Menu menuNav = mNavigationView.getMenu();
答案 1 :(得分:7)
我认为你应该首先得到这样的菜单:
navigationView.getMenu().findItem(R.id.login).setVisible(false);
此代码的主要方面是调用navigationView.getMenu()从中获取菜单,您将获得当前膨胀菜单的引用并调用findViewById(),之后您可以随意使用。
对于前项目组: -
<group
android:id="@+id/group_1"
android:checkableBehavior="single"
android:visible="false">
...
然后你可以使用: -
来控制它navigationView.getMenu().setGroupVisible(R.id.group_1, true)
答案 2 :(得分:5)
只需使用以下方式
nav_draw = (NavigationView) findViewById(R.id.nav_draw);
nav_draw.getMenu().findItem(R.id.navigation_item_1).setVisible(false);
答案 3 :(得分:0)
您可以通过以下方式获取物品
navigationView.Menu.GetItem(menu_index)
答案 4 :(得分:0)
create table tmp_table(
name varchar(50), -- adapt the datatypes and lengths to your requirement
phone_no int,
person_2 varchar(50),
person_4 varchar(50)
);
insert into tmp select name, phone, person_2, person_4 from mytable;
drop table mytable;
create table mytable(
name varchar(50),
phone_no int,
person_2 varchar(50),
person_4 varchar(50)
);
insert into mytable select name, phone, person_2, person_4 from tmp_table;
drop table tmp_table;
navMenu = navigationView.getMenu();
列表项
View navHeader=navigationView.getHeaderView(0);[![enter image description here][1]][1]