为什么我可以从菜单中删除某个项目但无法隐藏它?

时间:2017-05-23 11:15:33

标签: android bottomnavigationview

以下代码从BottonNavigationView中删除项目。它工作正常。

@Override
protected void hideUselessBottomBarButtons(Menu menu) {
    BottomNavigationView theMenuOfTheCujons = (BottomNavigationView) findViewById(R.id.bottom_navigation);
    theMenuOfTheCujons.getMenu().removeItem(0);
}

但是如果我将 removeItem(0)更改为 setVisible(false)它不起作用,那么按钮仍然存在。

protected void showBottomMenuItems() {
    Menu bottomMenu = mBottomNavigationView.getMenu();

    if (bottomMenu.size() == 0) {
        for (int i = 0; i < mMenuItemList.size(); i++) {




            if (bottomMenu.size() < mBottomNavigationView.getMaxItemCount()) {
                if (getItemTitle(i) != 0) {


                    if ((i % 2) == 0) {
                        (bottomMenu.add(Menu.NONE, getItemId(i), i, getItemTitle(i)).setIcon(getItemIcon(i))).setVisible(false);
                        Badger.sett(bottomMenu.getItem(i), mCircleFactory).setCount(0);
                    }else {
                        (bottomMenu.add(Menu.NONE, getItemId(i), i, getItemTitle(i)).setIcon(getItemIcon(i))).setVisible(true);
                        Badger.sett(bottomMenu.getItem(i), mCircleFactory).setCount(0);
                    }

                    supportInvalidateOptionsMenu();


                }

                updateBadgeCounters(i, bottomMenu);
            } else {
                break;
            }
        }
    }

    BottomNavigationViewUtils.disableShiftMode(mBottomNavigationView);
}

bottom_navigation布局是这样的:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.BottomNavigationView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/actionBarSize"
    android:layout_gravity="bottom"
    android:elevation="8dp"
    android:background="@color/color_button_bar"
    app:itemIconTint="@color/navigation_item_selector"
    app:itemTextColor="@color/navigation_item_selector"
    app:layout_anchorGravity="bottom"/>

我错过了什么?

1 个答案:

答案 0 :(得分:0)

如果您使用的是supportInvalidateOptionsMenu();AppCompatActivity,则应致电:invalidateOptionMenu()

Activity