BottomNavigationView 与 setOnItemSelectedListener()
BottomNavigationView with setOnItemSelectedListener()
我正在尝试使用 BottomNavigationView 构建应用程序,我将 setOnItemSelectedListener()
方法设置为底部导航,这样当用户 select 底部导航中的菜单之一时,我可以做我想做的事。
当我不设置 setOnItemSelectedListener()
时一切都很好,但是当我设置 setOnItemSelectedListener()
方法时,当用户 select 底部导航菜单时片段不会自动更新。
我在想是不是设置这个方法的时候需要手动处理分片交易?
谢谢^^
是的。您需要手动替换 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/
我正在尝试使用 BottomNavigationView 构建应用程序,我将 setOnItemSelectedListener()
方法设置为底部导航,这样当用户 select 底部导航中的菜单之一时,我可以做我想做的事。
当我不设置 setOnItemSelectedListener()
时一切都很好,但是当我设置 setOnItemSelectedListener()
方法时,当用户 select 底部导航菜单时片段不会自动更新。
我在想是不是设置这个方法的时候需要手动处理分片交易?
谢谢^^
是的。您需要手动替换 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/