什么是在按下后处理导航抽屉的选定状态的正确方法?
我有一个带有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