我收到此例外情况,我无法弄清楚原因:
在onSaveInstanceState之后无法执行此操作。
这是我在onCreate()
内部活动时添加第一个片段的方式:
new Handler().post(new Runnable() {
public void run() {
final FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager
.beginTransaction()
.add(id, fragment)
.commit();
}
});
在第一个fragment
内部,我有一个通向另一个fragment
的按钮。我导航到另一个fragment
,如下所示:
new Handler().post(new Runnable() {
public void run() {
final FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager
.beginTransaction()
.addToBackStack(fragment.getClass().getName())
.add(id, fragment)
.commit();
}
});
首次打开我的应用时,初始fragment
正常显示,我可以毫无问题地导航到另一个fragment
。我也可以通过调用fragment
上的popBackstack()
或onBackPressed()
来导航回Activity
。无论我来回走动多少次,导航都会起作用。
如果我第一次打开应用程序,出现初始fragment
,然后单击后退按钮关闭应用程序,则会出现问题。在这种情况下,当我第二次打开应用程序并单击导致另一个fragment
的按钮时,我得到了该异常。
有什么建议吗?
答案 0 :(得分:0)
将此添加到您的活动中。希望它能解决
private static final <T extends WhateverBound> Map<Class<T>,
BiFunction<T, T, Boolean>>
getSpecificHandlers(T t) {
// return new HashMap<Class<T>, BiFunction<T, T, Boolean>>();
// much easier on the eye - thanks Andy Turner
return new HashMap<>();
}