我在 Android 应用程序中使用类似于此的 TabListener
:http://developer.android.com/guide/topics/ui/actionbar.html#Tabs
我的onTabSelected
实现:
public void onTabSelected(Tab tab, FragmentTransaction ft) {
Fragment preInitFrag = mActivity.getFragmentManager().findFragmentByTag(mTag);
if (preInitFrag == null) {
mFragment = Fragment.instantiate(mActivity, mClass.getName(), mArgs);
ft.add(android.R.id.content, mFragment, mTag);
} else {
ft.attach(preInitFrag);
}
}
每次选择一个选项卡时,我都想将其添加到后退堆栈中。我怎样才能做到这一点?将参数 ft 与 ft.addToBackStack("test") 一起使用,它不起作用。它抛出一个致命异常:
java.lang.RuntimeException:
Unable to start activity ComponentInfo{.../...BaseActivity}:
java.lang.IllegalStateException:
This FragmentTransaction is not allowed to be added to the back stack.
最佳答案
ActionBar guide您在问题中链接到的内容对返回堆栈有这样的说法(在选项卡监听器示例代码下方的“警告”部分中):
You also cannot add these fragment transactions to the back stack.
指南没有解释原因,但不支持您想要的。您必须以其他方式保留标签历史记录,或者根本不保留标签历史记录。
关于java - Android TabListener : onTabSelected - add fragment to back stack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15043101/