2

我在我的应用程序中使用底栏。但我想更改底栏中的默认项目(选项卡)。我不使用任何外部库。我如何在应用程序运行时设置我最喜欢的选项卡。

我的代码:

BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        Fragment selectedFragment = null;
        switch (item.getItemId()) {
            case R.id.action_home:
                selectedFragment = Fragment1.newInstance();
                break;
            case R.id.action_product:
                selectedFragment = Fragment2.newInstance();
                break;
            case R.id.action_order:
                selectedFragment = Fragment3.newInstance();
                break;
            case R.id.action_contact:
                selectedFragment = Fragment4.newInstance();
                break;
        }

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.scrollView, selectedFragment);
        transaction.commit();
        return true;
    }

});
4

4 回答 4

2
bottomNavigationView.setSelectedItemId(R.id.action_home);

这将起作用

于 2018-01-25T18:35:49.150 回答
1
    for (int i = 0, size = menu.size(); i < size; i++) {
        MenuItem item = menu.getItem(i);
        item.setChecked(item.getItemId() == 0);
    }
于 2018-01-25T20:38:01.190 回答
1

这应该可以(我将它与 api 19+ 一起使用)

bottomNavigationView.getMenu().getItem(index).setChecked(true);
于 2018-01-25T22:34:52.977 回答
0

如果您希望在启动应用程序时打开特定项目。试试这个代码:

bottomNavigationView.setSelectedItemId(R.id.your_id);

但它仅适用于 API 25 及更高版本。

于 2018-01-25T18:34:34.113 回答