0

我可以像这样进行片段交易:

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包含一个正常的LinearLayoutFragment2too,像这样:

<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 但就我而言,我没有时间更改它。

4

0 回答 0