Android onBackPressed没有将布局更改为以前的片段

时间:2016-03-22 07:14:48

标签: android android-fragments fragmenttransaction

我的应用程序包含一个活动,其中LinearLayout是片段的容器。

<LinearLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:orientation="vertical" >

</LinearLayout>

到目前为止,我在容器中的片段之间切换没有问题。现在我需要添加一个片段的开关,另一个片段具有相同的布局但具有不同的逻辑。

以下是我在片段之间切换的方法:

final MyFragment fragment = new MyFragment();
    final Bundle args = new Bundle();
    args.putString("key", "value");
    fragment .setArguments(args);
    FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.abc_fade_in, R.anim.abc_fade_out).replace(R.id.container, fragment );
    if(addToBackStack)
    {
        transaction.addToBackStack(tag).commit();
    }
    else
    {
        transaction.commit();
    }

当在2个片段之间切换时,我将false作为addToBackStack传递,因此具有相同布局的调用片段不会被保存到后栈。

交换机本身有效,但是当我按下后退按钮时,我看到操作栏的标题正在更改为上一个标题,而前一个片段的onCreateView被调用,但是布局本身保持不变,不会改变。那是为什么?

0 个答案:

没有答案