片段BackStack虽然调用addToBackStack(null)但不起作用

时间:2012-02-09 17:05:41

标签: android android-fragments

在我的活动中,我致电:

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>

2 个答案:

答案 0 :(得分:2)

删除您在初始FragmentTransaction中对.addToBackStack(null)的第一次调用。

答案 1 :(得分:0)

永远不要调用addToBackStack()twise ..它会弄乱它