碎片和屏幕方向变化
问题描述:
我不明白碎片和屏幕方向应该如何在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片段与我已经重新片段-obtained。当我进行屏幕方向更改时,它会摧毁我的活动并重新创建它,但如果我可以保存我的片段并重新使用它,它应该使方向变化快得多。
tia。
答
您可以在xml中创建一个framelayout,并在代码中创建一个片段。然后将创建的片段添加到您的framelayout。在方向更改中,您尝试使用标记或ID查找您创建的片段,并执行一些删除/添加操作。
fragmentmanager.findFragmentByTag(" ... ");
fragmentmanager.add(R.id.fragmentContainer, myFragment, "...");
就是这样的。
http://developer.android.com/guide/topics/fundamentals/fragments.html 查看子节“或者,通过编程将片段添加到现有的ViewGroup”。这是“向活动添加片段”部分的子部分。
亲切的问候, 布拉姆