最近剛來了一家新的公司,因為只有一個人在做開發(fā)邮绿,很多東西都需要自己學(xué)習(xí),所以攀例,現(xiàn)在開始船逮,也做學(xué)習(xí)筆記吧。
在公司添加一個新的fragment的時候粤铭,如果切換回去containerFragment里面的NewsItemFragment的時候會出現(xiàn)這個fragment白板問題挖胃,剛開始用斷點進行了跟蹤,發(fā)現(xiàn)并沒有什么錯梆惯,然后就去網(wǎng)上查資料酱鸭,可能是自己的搜索關(guān)鍵詞有問題,所以搜不到自己想要的答案垛吗,很捉急啊凹髓。一個女生一個人開發(fā)APP真的好虛。于是怯屉,沒有辦法蔚舀,就去問同學(xué),同學(xué)說是viewpager的setOffscreenPageLimit做設(shè)置一下锨络,有個fragment就設(shè)置多少赌躺,將信將疑,我設(shè)置了一下羡儿,發(fā)現(xiàn)白板的問題解決了礼患。后來下午,不死心又去網(wǎng)上查了一下掠归,發(fā)現(xiàn)我的這個是fragment里面嵌套fragment在使用缅叠,如果用getFragmentManager會出現(xiàn)白板的問題。原因是getFragmentManager是fragment所在父容器的碎片管理虏冻,而getChildFragmentManager是fragment所在子容器的碎片管理痪署。如果用getFragmentManager會在viewpager中出現(xiàn)fragment不會加載的情況,所以切換回去就出現(xiàn)了白板兄旬。
其實,同學(xué)那個也可以解決問題的,但是具體不太懂领铐。還是把別人的解釋先貼上來吧
(當(dāng)我們使用ViewPage控件時悯森,假設(shè)我們的ViewPage有三頁,當(dāng)我們第一次啟動ViewPage顯示第一頁的時候绪撵,ViewPage會預(yù)加載第二頁瓢姻,這樣當(dāng)我們向第二頁滑動的時候就可以看見第二頁的內(nèi)容了,因為第二頁的內(nèi)容在第一頁內(nèi)容顯示的時候就已經(jīng)加載了音诈。當(dāng)我們滑動到第二頁時幻碱,ViewPage會預(yù)加載第三頁,這時ViewPage中已經(jīng)保存了三頁的內(nèi)容:第一頁细溅,第二頁和第三頁褥傍,這樣當(dāng)我們在第二頁向左或向右滑動ViewPage時能看到這三頁的內(nèi)容。
我在使用ViewPage控件時遇到過這樣的問題喇聊,像上面說明的那樣恍风,我在把ViewPage從第一頁滑動到第三頁的時候看到了這三頁的內(nèi)容,但是假設(shè)我在第一頁中做了一些操作改變了第一頁的內(nèi)容誓篱,而我在第三頁中也做了一些操作改變了第三頁的內(nèi)容朋贬,可是當(dāng)我從第三頁滑動到第一頁時發(fā)現(xiàn)第一頁的內(nèi)容還原了,而當(dāng)我再次從第一頁滑動到第三頁時發(fā)現(xiàn)第三頁的內(nèi)容也還原了窜骄。在網(wǎng)上查詢了一些資料锦募,分析了一下找到了問題的答案。
問題的根源在于ViewPage的加載頁數(shù)邻遏,就是說你可以指定ViewPage預(yù)加載的頁數(shù)糠亩,如果不指定,ViewPage默認加載一頁党远。在這種情況下削解,ViewPage會加載當(dāng)前顯示頁面相鄰的還沒有加載的頁面。比如說沟娱,當(dāng)前顯示的是首頁氛驮,因為首頁的左邊是沒有頁面的,所以ViewPage會加載第二頁的內(nèi)容济似;當(dāng)ViewPage滑動到第二頁的時候矫废,因為第一頁已經(jīng)加載,所以不會重復(fù)加載砰蠢,但是第三頁還沒有加載蓖扑,所以ViewPage會加載第三頁的內(nèi)容;當(dāng)ViewPage滑動到第三頁的時候(假設(shè)ViewPage只有三頁)台舱,因為第二頁已經(jīng)加載過了律杠,而第三頁的右邊沒有任何頁面了潭流,所以ViewPage不會加載任何界面。當(dāng)從第三頁滑動到第二頁時柜去,因為第三頁已經(jīng)加載過灰嫉,所以不會重新加載,雖然第一頁之前加載過嗓奢,但是讼撒,ViewPage的默認加載為一頁,而當(dāng)ViewPage在第三頁的時候第一頁在默認加載之外股耽,所以從第三頁滑動到第二頁的時候根盒,ViewPage會重新加載第一頁,而再從第一頁滑動到第三頁時是同樣的道理物蝙,所以會出現(xiàn)我上面描述的情況炎滞。
為了避免上述情況的發(fā)生我們可以通過調(diào)用ViewPage的setOffscreenPageLimit方法來指定加載的頁數(shù),從而得到我們想要的結(jié)果茬末。)
括號中的是從別人那邊轉(zhuǎn)過來的厂榛,地址是:http://blog.csdn.net/ygc87/article/details/7428780
第一次寫這種文字,給自己一個感受吧丽惭。击奶。上班偷偷寫的,就這么結(jié)束吧责掏。