我正在尝试用BottomNavigationView构建应用程序,并且我将setOnItemSelectedListener()方法设置为底部导航,这样当用户在底部导航中选择一个菜单时,我可以做我想做的事情。
当我不设置setOnItemSelectedListener()时,一切都是好的,但是当我设置setOnItemSelectedListener()方法时,当用户选择底部导航菜单时,片段就不会自动更新。
我认为在设置此方法时,是否必须手动处理片段事务?
谢谢^^
发布于 2021-12-25 12:30:00
是。您需要手动替换onNavigationItemSelected上的片段项。
示例:
private BottomNavigationView.OnNavigationItemSelectedListener navListener = new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// By using switch we can easily get
// the selected fragment
// by using there id.
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.algorithm:
selectedFragment = new AlgorithmFragment();
break;
case R.id.course:
selectedFragment = new CourseFragment();
break;
case R.id.profile:
selectedFragment = new ProfileFragment();
break;
}
// It will help to replace the
// one fragment to other.
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, selectedFragment)
.commit();
return true;
}
};您可以在这里找到一个很好的教程:https://www.geeksforgeeks.org/bottomnavigationview-inandroid/
https://stackoverflow.com/questions/70478918
复制相似问题