片段和屏幕方向的变化

时间:2011-12-15 22:18:01

标签: android orientation fragment

我不明白片段和屏幕方向应该如何在android中运行。

我有一个用XML定义的片段。

片段创建起来很昂贵,所以我想重复使用它。

我的代码如下:

@Override
protected void onSaveInstanceState (Bundle outState) {
    super.onSaveInstanceState(outState);
    getSupportFragmentManager().putFragment(outState, "myfrag", mFrag);
}

@Override
protected void onRestoreInstanceState (Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    mFrag = getSupportFragmentManager().getFragment(savedInstanceState, "myfrag");
}

我不明白的是如何用我重新获得的片段替换 XML中的片段。当我进行屏幕方向更改时,它最终会破坏我的活动并重新创建它,但如果我可以保存我的片段并重复使用它,它应该更快地进行方向更改。

TIA。

1 个答案:

答案 0 :(得分:1)

您可以在xml中创建framelayout,在代码中创建片段。然后将创建的片段添加到framelayout。在方向更改时,您尝试使用标记或ID查找创建的片段,并执行一些删除/添加操作。

fragmentmanager.findFragmentByTag(" ... ");
fragmentmanager.add(R.id.fragmentContainer, myFragment, "...");

这样的事情。

http://developer.android.com/guide/topics/fundamentals/fragments.html 请查看“或者,以编程方式将片段添加到现有ViewGroup”小节。这是“向活动添加片段”部分的一个子部分。

亲切的问候, BRAM