好的,所以通常我不是那种问的人,但我无法解决我的问题。所以我的第一个 StackOverflow-Question。
我有一个带有导航抽屉的活动,它触发了一些片段,这些片段有自己的子片段。
当用户在应用程序中深入时,“汉堡包”图标被替换为向上插入符号。在按下插入符号或后退键时,子片段从后台弹出,汉堡图标又回来了。
这是子片段中发生的情况:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// Called when the up caret in actionbar is pressed
getActivity().onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
在活动中:
@Override
public void onBackPressed() {
// turn on the Navigation Drawer image
FragmentManager fragmentManager = getSupportFragmentManager();
if (fragmentManager.getBackStackEntryCount () != 0)
mDrawerToggle.setDrawerIndicatorEnabled(true);
}
super.onBackPressed();
}
到目前为止,一切都很好。
当我们深入亚片段时,问题就开始了。子片段有一个列表,onLongClickItem 显示一个上下文操作栏,允许用户更改这些列表项。
如果打开该上下文操作栏并按下后退按钮,它会关闭(如预期的那样)但也会将向上插入符号更改为抽屉-汉堡图标-thingie。当然,我确实理解为什么会发生这种情况,但我没有看到(或能够在网上找到)一个干净的解决方案。
我是不是走错了路,还是我只是在这里错过了一个简单的步骤?我正在考虑将 setDrawerIndicatorEnabled 移动到 onBackStackChangedListener 并在那里侦听标记的 backStackItem。
但我想;在我开始弄乱我的所有代码之前,让我们先在野外问一个问题。
谢谢