我可以像这样进行片段交易:
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" />
whereFragment1
包含一个正常的LinearLayout
和Fragment2
too,像这样:
<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 但就我而言,我没有时间更改它。