2012-01-27 79 views
11

I'have 1 FragmentActivity與ViewPager該手柄2個片段。的Android - 片段屏幕旋轉

public class MyFragmentActivity extends FragmentActivity{

private Fragment f1; private Fragment f2; private ViewPager myPager; private MyFragmentAdapter mFragmentsAdapter; private static ArrayAdapter<Fragment> mFragmentArray; public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.my_layout); myViewPager = (ViewPager) findViewById(R.id.pager_acciones); mFragmentArray = new ArrayAdapter<Fragment>(getApplicationContext(),android.R.layout.simple_list_item_1); f1 = new Fragment(); f1 = new Fragment(); mFragmentArray.add(f1); mFragmentArray.add(f2); mFragmentsAdapter = new MyFragmentAdapter(getSupportFragmentManager()); myPager.setAdapter(mFragmentsAdapter); myPartidoPager.setCurrentItem(0); } public static class MyFragmentAdapter extends FragmentPagerAdapter { public AccionesFragmentAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return mFragmentArray.getCount(); } @Override public Fragment getItem(int position) { return mFragmentArray.getItem(position); } }

我的問題是,每一次屏幕方向的變化,將創建活動,也是片段。我不介意活動是否再次創建,但我不希望碎片被重新創建。

+0

我找到了解決辦法[這裏](http://stackoverflow.com/questions/7951730/viewpager-and-fragments-whats-the-right-way-to-store-fragments-state)感謝@ oneilse14您無論如何回答。 – gutiory 2012-01-29 19:37:11

回答

0

保存FragmentAdapter的onSaveInstanceState中與onRetainNonConfigurationInstance配置更改後,返回到活動使片段生存的方向改變。

+0

@ oneilse12。謝謝。但是使用FragmentActivity,不可能覆蓋onRetainNonConfigurationInstance方法。 – gutiory 2012-01-29 18:38:26

13

最簡單的方法是拋出一個if陳述權上創建方法被調用後檢查,看看是否你已經有東西在裏面。如果savedInstanceState不爲空,你不需要做任何事情:

if (savedInstanceState == null){ 
    // do whatever 
} else { 
    // dont do anything 
} 

(這個答案是更多的在這問那絆倒人的事業,他們想不通爲什麼片段得到重新添加他們每次打開他們的設備)

2

您可以添加: android:configChanges="screenSize|orientation"AndroidManifest.xml

這將阻止Android的屏幕方向改變調用onCreate。如果要執行方向更改的特殊處理,則可以覆蓋onConfigurationChanges

+8

不能相信這些答案仍然在這裏發佈。最好看看這個:http://cyrilmottier.com/2014/09/25/deep-dive-into-android-state-restoration/ – dumazy 2015-04-03 10:02:10