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