底部导航栏的 Oncreate 视图问题

Posted

技术标签:

【中文标题】底部导航栏的 Oncreate 视图问题【英文标题】:Problem with Oncreate view of bottom navigation bar 【发布时间】:2021-12-03 05:23:56 【问题描述】:

我有一个底部导航栏,其中包含 4 个片段和另一个活动中的 1 个活动(其中将显示所有片段)。我希望我的第一个片段与底部导航栏的匹配项一起显示在活动的开始(其中将显示所有片段)。我的片段 1 在开始时显示,但底部导航栏的项目错误。

这是什么,我要开始了。选择的项目应该是 Home(middle)

我在 OnCreate 下有这个

        btmNav = findViewById(R.id.btmnav);
            btmNav.setOnNavigationItemSelectedListener((navListner));
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new RecViewFragment()).commit();

这在 Oncreate 之外

private BottomNavigationView.OnNavigationItemSelectedListener navListner = new BottomNavigationView.OnNavigationItemSelectedListener() 
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) 
            switch (item.getItemId())
            case R.id.navprofile:
            getSupportFragmentManager().beginTransaction().
            replace(R.id.fragment_container,new Fragment2()).commit();
            break;
            case R.id.navmap:
            Intent intent = new Intent(MainActivityBuses.this, MapActivity.class);
            startActivity(intent);
            break;
            case R.id.navhome:
            getSupportFragmentManager().beginTransaction().
            replace(R.id.fragment_container,new Fragment2()).commit();
            break;
            case R.id.navmybus:
            getSupportFragmentManager().beginTransaction().
            replace(R.id.fragment_container,new Fragment3()).commit();
            break;
            case R.id.navinfo:
            getSupportFragmentManager().beginTransaction().
            replace(R.id.fragment_container,new Fragment4()).commit();
            break;
            
            return true;
            

【问题讨论】:

【参考方案1】:

我得到了答案, 只需要添加这个

btmNav.getMenu().findItem(R.id.navhome).setChecked(true);

下面

btmNav = findViewById(R.id.btmnav);
        btmNav.setOnNavigationItemSelectedListener((navListner));
        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new RecViewFragment()).commit();

【讨论】:

以上是关于底部导航栏的 Oncreate 视图问题的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将 UIView 的顶部固定到导航栏的底部?

底部导航栏的 onItemSelectedListener

底部导航栏的表现形式

Android应用-底部导航栏的使用

想要在flutter中通过底部导航栏的总价

将底部导航栏的代码与脚手架分离