我在我的项目中使用 fragment ,我在最近的 android 构建版本 25.2.0
中遇到一个问题,即清除 fragment 无法正常工作。
让我解释一下我的问题。
最初我添加了 DbFragmentView() fragment 类,但没有将其添加到 backStack。
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new DbFragmentView()).commit();
对于所有其他 fragment ,我将使用以下方法将其添加到后台堆栈
@Override
public void replaceFragment(Fragment fragment, String Title) {
String backStateName = fragment.getClass().getName();
FragmentManager manager = getSupportFragmentManager();
boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0);
if (!fragmentPopped) { //fragment not in back stack, create it.
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.frame_container, fragment, fragment.toString());
ft.addToBackStack(backStateName);
ft.commit();
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setTitle(Title);
}
}
在某些情况下,我需要清除我所有的 backstack fragment ,因为我使用下面的代码
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
在将构建版本更改为 25.2.0
之前一切正常。
但是在我将构建版本从 25.1.0
更改为 25.2.0
之后,上面的代码清除了我所有的 fragment ,然后又回到了我的第一个 DbFragmentView() fragment ,但 View 未出现。
onCreateView
方法已调用,但 View 看起来是透明的,因此我可以看到后台的其他应用。
然后我再次将构建版本更改为 25.1.0
然后它照常工作。
谁能告诉我解决这个问题的方法
注意:此问题仅在最新构建版本 25.2.0
中出现。
最佳答案
Android 最近更新了支持库版本,我已经在我的代码中更改了它。现在问题已解决。
compile 'com.android.support:appcompat-v7:25.3.0'
关于android - 构建版本 25.2.0 中的 fragment 返回堆栈问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42643952/