按下后处理导航抽屉的选定状态的正确方法是什么?
我有一个带有 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();
当我单击抽屉中的第二个条目时,B 被选中并替换 A。如果我随后单击后退按钮,片段 A 会再次显示,但 B 仍会在导航抽屉中被选中。
按下后如何更新抽屉的选择状态?
不知何故,我需要调用 mDrawerListView.setItemChecked(position, true); 或 NavigationDrawerFragment.selectItem(int position)。但是到哪个位置呢?我怎么记住它?
用 onBackPressed 拦截?
@Override
public void onBackPressed() {}
但是我怎么知道哪个片段再次处于活动状态?以及它对应的位置。
有一些我看不到的简单解决方案吗?似乎将返回与导航抽屉结合使用并更新选择状态是一种标准模式。