[英]Keeping an activity from re-creating my fragments on orientation change
我有一個活動,其中包含一個片段,當該片段上的某些內容被單擊時,我將該片段替換為另一個片段。 如果設備在第二個片段中旋轉,則onCreate
將被調用以進行活動,並再次重新創建第一個片段。
當設備旋轉時,如何阻止onCreate被調用?
在我的清單上我有這個
<activity android:name="CalActivity" android:configChanges="orientation|keyboardHidden"/>
據我了解,向該活動添加configChanges可以防止該活動被破壞和重新創建,但是onCreate仍然被調用並弄亂了片段。
我也嘗試將setRetainInstance()
放入片段中, setRetainInstance()
沒有幫助
如果設備不旋轉,碎片將按應有的方式工作,而我不想將其作為僅一個方向的活動,那就是更多的技巧,而不是真正解決問題的方式
我還可以做些什么?
編輯:
這就是我創建片段的方式
Fragment miniMonthFrag = new MonthByWeekFragment(System.currentTimeMillis(), false);
ft.replace(R.id.cal_frame, miniMonthFrag).commit();
而不是使用替換使用:
FragmentManager fm = getFragmentManager();
if (fm.findFragmentById(R.id.cal_frame) == null) {
mFragment = new MonthByWeekFragment(System.currentTimeMillis(), false);
fm.beginTransaction().add(R.id.cal_frame, mFragment ).commit();
} else {
mFragment = (MonthByWeekFragment) fm.findFragmentById(R.id.cal_frame);
}
這將確保您在旋轉后使用先前存在的片段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.