淺談android Fragment橫豎屏翻轉(zhuǎn)對(duì)重新加載的要求
有時(shí)候,我們?cè)谕粋€(gè)activity里面有很多fragment,在橫豎屏的時(shí)候,有些fragment要求重新加載數(shù)據(jù),有些不需要,如何簡(jiǎn)單控制這些需求,本人分享一點(diǎn)小經(jīng)驗(yàn),歡迎大家指正里面的錯(cuò)誤。
大家都知道橫豎屏翻轉(zhuǎn)的時(shí)候,activity會(huì)重啟,fragment也會(huì)重新加載,如果現(xiàn)在要求在橫豎屏翻轉(zhuǎn)的時(shí)候,同一個(gè)activity中,一個(gè)fragment要重新加載,一個(gè)不要重新加載,那該怎么辦呢?
如果在activity里面繼承了onConfigurationChanged這個(gè)方法之后,這個(gè)activity和里面的fragment是不會(huì)重新加載的,也就是說(shuō)顯示的數(shù)據(jù)和UI不會(huì)改變,只是將豎屏的界面顯示成橫屏。為了控制哪個(gè)fragment不重啟哪個(gè)fragment要重啟。我們只要在onConfigurationChanged方法里面針對(duì)不同的fragment做不同的處理就好了。
<span style="white-space:pre;"> </span>@Override public void onConfigurationChanged(Configuration newConfig) { // TODO Auto-generated method stub super.onConfigurationChanged(newConfig); FragmentManager fragmentManager = getFragmentManager(); Fragment oldFragment = null; if ((oldFragment = fragmentManager .findFragmentByTag("Fragment_One")) != null) { Fragment newFragment = new FragmentOne(); FragmentTransaction trans = fragmentManager.beginTransaction(); <span style="white-space:pre;"> </span>trans.remove(oldFragment); <span style="white-space:pre;"> </span>if (newFragment != null) { <span style="white-space:pre;"> </span>trans.add(R.id.fragments_container, newFragment, "Fragment_One"); <span style="white-space:pre;"> </span>} <span style="white-space:pre;"> </span>trans.commit(); } }
假如我們現(xiàn)在有FragmentOne和FragmentTwo,其中FragmentOne要求在橫豎屏的時(shí)候activity不重啟,但是FragmentOne要重啟。那么只要在onConfigurationChanged里面判斷當(dāng)前顯示的如果是FragmentOne就remove掉舊的FragmentOne對(duì)象,new一個(gè)新的FragmentOne對(duì)象重新顯示到當(dāng)前activity。這樣fragment的數(shù)據(jù)和UI就可以重新加載和改變了。
這樣當(dāng)橫豎屏翻轉(zhuǎn)的時(shí)候,我們不想重啟activity,但是不同的fragment,有不同的界面或者需求,我們可以通過(guò)上面的方法隨意控制fragment要不要重新加載了。
以上這篇淺談android Fragment橫豎屏翻轉(zhuǎn)對(duì)重新加載的要求就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android編程實(shí)現(xiàn)Dialog窗體監(jiān)聽(tīng)的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)Dialog窗體監(jiān)聽(tīng)的方法,結(jié)合實(shí)例形式分析了Android針對(duì)Dialog對(duì)話框窗體事件監(jiān)聽(tīng)與響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下2017-03-03Android通過(guò)LIstView顯示文件列表的兩種方法介紹
過(guò)ListView顯示SD卡中的文件列表一共有兩種方法,一是:通過(guò)繼承ListActivity顯示;二是:利用BaseAdapter顯示,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈2013-06-06解析Android開(kāi)發(fā)優(yōu)化之:軟引用與弱引用的應(yīng)用
Java從JDK1.2版本開(kāi)始,就把對(duì)象的引用分為四種級(jí)別,從而使程序能更加靈活的控制對(duì)象的生命周期。這四種級(jí)別由高到低依次為:強(qiáng)引用、軟引用、弱引用和虛引用,本篇文章重點(diǎn)介紹一下軟引用和弱引用2013-05-05Android app應(yīng)用多語(yǔ)言切換功能實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Android app應(yīng)用多語(yǔ)言切換功能實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下2016-08-08