[英]How to hide a navigation drawer menu item programmatically?
我想隐藏导航抽屉菜单中的菜单项,并根据使用应用程序的用户类型显示它,根据下面的代码菜单项返回空值:
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open,R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
MenuItem target = (MenuItem)drawer.findViewById(R.id.nav_target);
target.setVisible(false);
通过创建菜单并使用来修复它
menu.findItem(R.id.nav_target)
正如@droid8421 所建议的那样。
固定代码:
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
Menu menu =navigationView.getMenu();
MenuItem target = menu.findItem(R.id.nav_target);
target.setVisible(false);
在开发具有两种 productFlavours(免费和高级)的应用程序时,我遇到了同样的问题
我在免费版本中显示 BuyProVersion 菜单项并在高级版本中禁用它的操作是:
Menu menu = navigationView.getMenu();
MenuItem buyPro =
menu.findItem(R.id.buy_pro_version)
if(buildConfig.FLAVOR.equalsIgnorCase("paid")){
//Logic for disabling BuyProVersion Menu item
buyPro.setVisible(false)
}else {
buyPro.setVisible(true)
}
我希望有一天它可以帮助某人。 确保在 build.gradle 中设置 productFlavors
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.