簡體   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