我在 MainActivity (AppCompatActivity) 上创建了一个 NavigationView。 我在 NavigationView 上有多个项目,每个项目都是一个 fragment 。
当我使用后退按钮时,我想转到上一个 fragment 而不是将我的应用置于后台。因此,要在我使用的 fragment 之间进行更改:
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.layout, fragment).addToBackStack(null).commit();
当我按下后退按钮时,它会转到上一个 fragment ,但 NavigationView 的选中项目仍然存在。在按下后退按钮时更新 NavigationView 检查项目的最佳方法是什么?
最佳答案
我已经在我的项目中使用了以下代码......并且它有效...... 我已将菜单项膨胀到抽屉导航中..... 你必须在你的每个 fragment 中实现它......在 onActivityCreated() 方法中......因为这个方法肯定会在创建 Activity 后调用,所以我们可以使用 UI 元素......
//代码.....
NavigationView navigation = (NavigationView)getActivity().findViewById(R.id.navigation_view);
Menu drawer_menu = navigation.getMenu();
MenuItem menuItem;
menuItem = drawer_menu.findItem(R.id.Id_ofYourMenuItem);
if(!menuItem.isChecked())
{
menuItem.setChecked(true);
}
因此,每次调用您的 fragment (通过抽屉导航或通过按下后退按钮)时,它都会设置菜单项检查本身。
关于android - 导航 View - 按下后退按钮时更新选中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38346061/