繁体   English   中英

如何以编程方式隐藏导航抽屉菜单项?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM