我不明白片段和屏幕方向应该如何在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。
答案 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