android - 导航 View - 按下后退按钮时更新选中的项目

标签 android

我在 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/

相关文章:

android - Playstore 开放测试的意义

android - 当字符串不是嵌入式资源时,如何设置 TextView 以显示 UTF-8?

android - 在 Android 中使用动态图像和文本创建 ListView

Android Studio 3.0 Preview - Studio 没有写入权限

android - AltBeacon 库 BootstrapNotifier 不调用 didEnterRegion

java - 是否有可能拥有 native android 代码?

java - 动态scaleType = centerCrop

android - 从 google play 获取 android 应用程序的所有详细信息

android - 如何在代码中获取 attr 引用?

java - 无法将应用程序安装为 .apk,但我可以通过 USB 调试安装它