2011-12-15 89 views
0

我不明白碎片和屏幕方向應該如何在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。

回答

1

您可以在xml中創建一個framelayout,並在代碼中創建一個片段。然後將創建的片段添加到您的framelayout。在方向更改中,您嘗試使用標記或ID查找您創建的片段,並執行一些刪除/添加操作。

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

就是這樣的。

http://developer.android.com/guide/topics/fundamentals/fragments.html 查看子節「或者,通過編程將片段添加到現有的ViewGroup」。這是「向活動添加片段」部分的子部分。

親切的問候, 布拉姆