How to Set selected item in BottomNavigationView

前端 未结 12 1836
半阙折子戏
半阙折子戏 2020-12-25 11:48

I am trying to set default item on activity created but it isn\'t working? This is my code:

protected void onCreate(Bundle savedInstanceState) {
    super.o         


        
相关标签:
12条回答
  • 2020-12-25 12:11

    FYI: for fragment, onCreateView

    BottomNavigationView mBottomNavigationView = getActivity().findViewById(R.id.bottomNavigationView);
    
    mBottomNavigationView.setSelectedItemId(R.id.your_item);
    
    0 讨论(0)
  • 2020-12-25 12:13

    Kotlin extension version of Abshishek's answer:

    internal fun BottomNavigationView.checkItem(actionId: Int) {
        menu.findItem(actionId)?.isChecked = true
    }
    
    // use 
    bottom_navigation.checkItem(R.id.navigation_home)
    

    This does not trigger OnNavigationItemSelectedListener.

    0 讨论(0)
  • 2020-12-25 12:13

    You can use:

        navigationView?.menu?.findItem(drawableMenuItem.id)?.isChecked = true
    

    and it will not fire OnNavigationItemSelectedListener events.

    0 讨论(0)
  • 2020-12-25 12:17

    You can also set selection in BottomNavigatioView using index like this :

    public void selectBottomNavigationOption(int index) {
            switch (index) {
                case 0:
                    index = R.id.action_1;
                    break;
                case 1:
                    index = R.id.action_2;
                    break;
                case 2:
                    index = R.id.action_3;
                    break;
                case 3:
                    index = R.id.action_4;
                    break;
            }
            bottomNavigationView.setSelectedItemId(index);
        }
    
    0 讨论(0)
  • 2020-12-25 12:21

    Instead of selected you need to setChecked(true) that item. Try this code

    mBottomNavigationView=(BottomNavigationView)findViewById(R.id.bottom_nav);
    mBottomNavigationView.getMenu().findItem(R.id.item_id).setChecked(true);
    

    Checked item is highlighted in BottomNavigationView.

    0 讨论(0)
  • 2020-12-25 12:24

    Kotlin Solution

    In a Fragment

    getActivity()?.myNavigationViewId?.selectedItemId = R.id.other_tab_id
    

    In an Activity

    myNavigationViewId?.selectedItemId = R.id.other_tab_id
    

    NOTE: Make sure to replace myNavigationViewId and other_tab_id with your actual navigation view and tab ids.

    0 讨论(0)
提交回复
热议问题