0

我有一个包含线性布局和片段占位符的活动。

<RelativeLayout >

    <LinearLayout/>

    <fragment />

</RelativeLayout>

在活动的 onCreate() 中,我将一个片段放置在片段占位符中,并将多个片段放置在线性布局中。在手机进行配置更改(例如方向更改)之前,这可以正常工作。

对于方向或配置更改,我没有做任何特别的事情。发生的事情真的很奇怪:片段占位符已正确填充,但线性布局现在包含重复的片段。即如果线性布局之前有fragment1并且fragment2在其中,它现在将显示fragment1 fragment2 fragment1 fragment2. 这里发生了什么?

作为附加说明:我正在使用反射来创建片段对象,但我认为这不会改变任何东西。

4

1 回答 1

0

当方向改变时,框架会自动将片段添加到您的视图中。仅当 paramBundle 为空时才执行添加片段事务。

示例(使用支持库):

@Override
public void onCreate(Bundle paramBundle) {
    super.onCreate(paramBundle);
    if (paramBundle == null) {
        FragmentManager localFragmentManager = getSupportFragmentManager();
        FragmentTransaction localFragmentTransaction = localFragmentManager
                .beginTransaction();
        localFragmentTransaction.add(R.id.fragmentHost,
                new MyFragment(), MY_FRAGMENT_TAG);
        localFragmentTransaction.commit();
    }
}
于 2012-05-07T20:28:08.273 回答