片段堆栈中不工作虽然addToBackStack(空)称为
问题描述:
在我的活动我打电话:片段堆栈中不工作虽然addToBackStack(空)称为
getFragmentManager().beginTransaction().addToBackStack(null)
.add(R.id.fragment_container, new UserPlaylistsFragment())
.addToBackStack(null).commit();
这个片段被正确添加到视图。 该片段包含一个列表视图。单击某个项目时,将执行以下代码:
getFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, new ViewPlaylistFragment(),
"ViewPlaylistFragment").addToBackStack(null).commit();
这也适用。 UserPlaylistsFragment被ViewPlaylistFragment替换。 奇怪的事情: 当击中“后退按钮”时什么也没有发生。当它点击两次时,应用程序关闭(没有错误)。
看起来“BackStack”不适合我。有人建议吗?
我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</RelativeLayout>
</LinearLayout>
答
在初始FragmentTransaction删除您来.addToBackStack(空)第一个电话。
+0
哇这个问题很久以前,但是你是对的,双后台电话是问题 – 2013-02-05 22:42:31
答
,一定不要调用addToBackStack()twise ..它会搞砸了
这可能是一个长镜头,但我已经看到片段疯狂举动。 你为什么要做'.addToBackStack(null)'两次?你应该只在'add'或'replace'之后调用它。 – blindstuff 2012-02-09 20:45:55
双'.addToBackStack(null)'对我来说也很奇怪。你有没有尝试只使用提交之前的那个? – Javier 2012-09-28 22:46:15