2017-06-16 38 views
0

我用BottomNavigationView创建了一个活动,它工作正常。如何在BottomNavigationView中隐藏和显示菜单?

但我无法隐藏菜单项。

我试过这段代码。

bottomNavigationView.getMenu()。findItem(R.id.tab_email).setVisible(false);

我甚至试图调用bottomNavigationView.invalidate();

所有输入值得赞赏。

回答

0

这是为我工作:

/** 
* Hides specified item in BottomNavigation View 
* 
* @param id - id of the menu item - example R.id.profile 
* @param view - instance of BottomNavigationView 
*/ 
public void hideBottomNavigationItem(int id, BottomNavigationView view) { 
    BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0); 
    for (int i = 0; i < menuView.getChildCount(); i++) { 
     BottomNavigationItemView itemView = (BottomNavigationItemView) menuView.getChildAt(i); 
     if (itemView.getId() == id) { 
      itemView.setVisibility(View.GONE); 
     } 
    } 
} 

同样,如果你在上面的上面的代码中的特定菜单将是可见的

更新设置itemView.setVisibility(View.VISIBLE);,而不是itemView.setVisibility(View.GONE);容易隐藏/显示菜单项BottomNavigationMenu

public void hideBottomNavigationItem(int id, BottomNavigationView view) { 
    BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0); 
    menuView.findViewById(id).setVisibility(View.GONE); 
} 

public void showBottomNavigationItem(int id, BottomNavigationView view) { 
    BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0); 
    menuView.findViewById(id).setVisibility(View.VISIBLE); 
} 
1
bottomNavigation.getMenu().removeItem(R.id.nav_user_download); 

removeItem(int menu_item_id),请调用此方法。

我尝试隐藏/显示方法@Sachin饶,但它工作不是很好。所以我终于找到了这种方式,这对我来说很好。