我可以像这样进行片段交易:
Fragment2 frag = new Fragment2();
FragmentTransaction tr = fragmentManager.beginTransaction();
tr.add(R.id.fragment, frag);
tr.addToBackStack();
tr.commit();
只是在具有此布局的活动中:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fragment"
android:name="com.youhou.fragment1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/fragment1" />
其中Fragment1
包含正常的LinearLayout
和Fragment2
,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white" />
</LinearLayout>
我可以再次使用Fragment3
进行第二次交易,如下所示:
Fragment3 frag = new Fragment3();
FragmentTransaction tr = fragmentManager.beginTransaction();
tr.add(R.id.fragment, frag);
tr.addToBackStack();
tr.commit();
它似乎有效,但我知道情况不应该如此。这样使用它对应用程序的稳定性是危险的吗?有人可以给我一个关于这个案例的解释,为什么它像这样工作以及如何工作。
我知道我应该使用Framelayout
并在其中添加/替换Fragment但在我的情况下,我没有时间更改它。