底部导航栏的 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 视图问题的主要内容,如果未能解决你的问题,请参考以下文章