静态片段布局上的事务

时间:2016-01-29 13:03:59

标签: java android android-layout android-fragments fragment-backstack

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

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包含正常的LinearLayoutFragment2,如下所示:

<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但在我的情况下,我没有时间更改它。

0 个答案:

没有答案