后按后处理导航抽屉的选定状态的正确方法是什么?
我有一个带有 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位置)。但到哪个位置呢?我怎么记得它?
用 onBackPressed 拦截?
@Override
public void onBackPressed() {}
但我如何知道哪个片段再次处于活动状态?以及对应哪个位置。
有没有一些我看不见的简单解决方案?看来,将 back 与导航抽屉结合使用并更新选择状态是一种标准模式。