小编spa*_*ist的帖子

在按下后更新导航抽屉的选定状态

什么是在按下后处理导航抽屉的选定状态的正确方法?

我有一个带有n个条目的导航抽屉(在列表视图中),就像Android Studio中的SDK示例一样.当我点击导航抽屉条目时,我希望它们被添加到后台堆栈,所以我可以回到它们.

在onNavigationDrawerItemSelected(int pos)我有

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        if (position == 0) {
            transaction.replace(R.id.container, new FragmentA());
        } else if (position == 1) {
            transaction.replace(R.id.container, new FragmentB());
        } else {
            transaction.replace(R.id.container, new FragmentC());
        }
        transaction.addToBackStack(null);
        transaction.commit();
Run Code Online (Sandbox Code Playgroud)

当我点击抽屉中的第二个条目时,B被选中并替换A.如果我之后单击后退按钮,片段A将再次显示,但仍然在导航抽屉中选择了B.

如何在按下后更新抽屉的选择状态?

不知怎的,我需要调用mDrawerListView.setItemChecked(position,true); 或NavigationDrawerFragment.selectItem(int position).但到了哪个位置?我怎么记得呢?

拦截onBackPressed?

@Override
    public void onBackPressed() {}
Run Code Online (Sandbox Code Playgroud)

但我怎么知道哪个片段再次活跃?它对应于哪个位置.

有一些简单的解决方案我是盲目的看到的吗?似乎与导航抽屉结合使用并更新选择状态是标准模式.

navigation android android-fragments navigation-drawer onbackpressed

12
推荐指数
3
解决办法
9594
查看次数