2017-05-23 9 views
0

次のコードは、BottonNavigationViewから項目を削除します。それは正しく動作します。メニューから項目を削除できますが、非表示にできないのはなぜですか?

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

しかし、私はそれがない作品を行いremoveItem(0)へのsetVisible(false)をを変更した場合、ボタンはまだそこにあります。私は何をしないのです

<?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"/> 

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レイアウトはこれですか?

答えて

0

AppCompatActivityまたはinvalidateOptionMenu()を使用している場合はActivityを使用してください。

theMenuOfTheCujons.getMenu().getItem(0).setVisible(false); 
supportInvalidateOptionsMenu(); 
+0

私は 'AppCompatActivity'を使用していますので、' supportInvalidateOptionsMenu(); 'を追加しましたが結果はありません。 –

+0

質問にあなたの活動コードを入れてください。 –

+0

アクティビティは本当に大きく、特にどの部分ですか? –

関連する問題