在其他片段上绘制片段的问题。如何替换片段?

时间:2014-12-08 13:48:08

标签: android

我有这样的代码在我的活动中显示我当前显示的片段并显示不同的片段。有时第一个视图显示在另一个视图的顶部。

可能导致什么?有更好的方法吗?

    android.app.FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
    fragmentTransaction.remove(from);
    fragmentTransaction.commit();
    getFragmentManager().executePendingTransactions();
    fragmentTransaction = getFragmentManager().beginTransaction();

    fragmentTransaction.add(R.id.container, to);
    if(showBackButton) {
        fragmentTransaction.addToBackStack(to.toString());
    }
    fragmentTransaction.commit();

1 个答案:

答案 0 :(得分:0)

您可以尝试使用replace命令。类似的东西:

FragmentTransaction transaction = fm.beginTransaction();
transaction.replace(R.id.fragment_container, iFrag);
transaction.commit();

fragment_container只是其自己的XML文件中的FrameLayout:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?android:attr/actionBarSize"
android:background="#888888" />

iFrag是一个实例化的类,它扩展了Fragment。