Android 尽管调用了addToBackStack(null),但片段BackStack不起作用
在我的活动中,我称之为:Android 尽管调用了addToBackStack(null),但片段BackStack不起作用,android,android-fragments,Android,Android Fragments,在我的活动中,我称之为: getFragmentManager().beginTransaction().addToBackStack(null) .add(R.id.fragment_container, new UserPlaylistsFragment()) .addToBackStack(null).commit(); 此片段已正确添加到视图中。 该片段包含一个listview。单击项目时,将执行以下代码: getFrag
getFragmentManager().beginTransaction().addToBackStack(null)
.add(R.id.fragment_container, new UserPlaylistsFragment())
.addToBackStack(null).commit();
此片段已正确添加到视图中。
该片段包含一个listview。单击项目时,将执行以下代码:
getFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, new ViewPlaylistFragment(),
"ViewPlaylistFragment").addToBackStack(null).commit();
这也行得通。UserPlaySFragment将替换为ViewPlaySFragment。
奇怪的是:
当按下“后退按钮”时,什么也不会发生。当点击两次时,应用程序关闭(没有错误)
看来“背靠背”对我不起作用。有什么建议吗
我的布局:
<?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>
在初始碎片事务中删除对.addToBackStack(null)的第一次调用。永远不要调用addToBackStack()twise。。这可能会把事情搞砸这可能是一个很长的机会,但我看到碎片表现得很疯狂。为什么要执行两次.addToBackStack(null)
?您应该只在双的add
或replace
之后调用它。addToBackStack(null)
在我看来也很奇怪。你有没有试着只使用提交前的一个?哇,这个问题很久以前就有了,但是ofc你是对的,问题出在双重回退呼叫上