如何在 BottomNavigationView 中隐藏和显示菜单?
How to hide and show a menu in BottomNavigationView?
我用 BottomNavigationView 创建了一个 activity,它工作正常。
但是我无法隐藏菜单项。
我试过这个代码。
bottomNavigationView.getMenu().findItem(R.id.tab_email).setVisible(false);
我什至尝试调用 bottomNavigationView.invalidate();
感谢所有意见。
这对我有用:
/**
* 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);
,则特定菜单将可见
更新: 轻松 hide/show 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);
}
bottomNavigation.getMenu().removeItem(R.id.nav_user_download);
removeItem(int menu_item_id),调用这个方法
我尝试了hide/show方法@Sachin Rao,但效果不是很好。所以我终于找到了这种方式,它对我来说效果很好。
您可以使用以下示例:
BottomNavigationMenuView menuView = rootView.findViewById(R.id.my_bottom_nav_menu);
menuView.findViewById(R.id.action_menu_need_to_hide).setVisibility(View.GONE);
我用 BottomNavigationView 创建了一个 activity,它工作正常。
但是我无法隐藏菜单项。
我试过这个代码。
bottomNavigationView.getMenu().findItem(R.id.tab_email).setVisible(false);
我什至尝试调用 bottomNavigationView.invalidate();
感谢所有意见。
这对我有用:
/**
* 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);
,则特定菜单将可见
更新: 轻松 hide/show 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);
}
bottomNavigation.getMenu().removeItem(R.id.nav_user_download);
removeItem(int menu_item_id),调用这个方法
我尝试了hide/show方法@Sachin Rao,但效果不是很好。所以我终于找到了这种方式,它对我来说效果很好。
您可以使用以下示例:
BottomNavigationMenuView menuView = rootView.findViewById(R.id.my_bottom_nav_menu);
menuView.findViewById(R.id.action_menu_need_to_hide).setVisibility(View.GONE);