最近改一個bug涕蜂,viewpager和fragement結(jié)合使用,數(shù)據(jù)滑動的時候构罗,頁面會出現(xiàn)數(shù)據(jù)錯亂,加上復雜的邏輯環(huán)境智玻,費了不少勁才找到問題遂唧,主要是沒有使用set/getArguments的標準方式傳遞參數(shù),而是復寫了父類的setArguments方法吊奢,直接在這傳的參盖彭,這樣滑動頁面的時候會出現(xiàn)銷毀和重建的問題,viewpager的adapter在銷毀一個頁面的時候會存儲這個頁面的各種args页滚,存到bundle中召边,其中包括當調(diào)用fragment的setArguments的時存儲的一份參數(shù),但是因為復寫了這個函數(shù)裹驰,并且沒有調(diào)用super方法隧熙,這樣傳遞的參數(shù)就沒保存,銷毀重建的時候就沒有參數(shù)了幻林。
還有一個項目里的代碼贞盯,在viewpager的adapter的getitem函數(shù)中有個判斷mPager.getCurrentItem() == position的條件,即是否當前展示的頁面是要加載的頁面沪饺,這乍看起來很奇怪邻悬,我要加載的頁面當然是我當前要展示的頁面,但是這里忽略一個情況随闽,就是viewpager會預加載父丰,展示一個頁面會同時加載好多頁面,這跟setOffscreenPageLimit這個函數(shù)有關(guān),在getitem函數(shù)里加上這個條件判斷蛾扇,當展示的頁面和加載頁面是同一個攘烛,那就找到這個頁面返回,如果是預加載镀首,那就返回中間態(tài)頁面坟漱,可以是輕量級的空頁面,這樣減少開銷更哄,當滑動到這個預加載的頁面時芋齿,可以在onPageSelected里面讓空頁面加載真正的頁面,這樣做到延遲加載成翩。
因為對于viewpager的一些原理不明白觅捆,也是造成這個bug好久看不出來的原因。當一些問題看似很難的時候麻敌,往往是我們該補充基礎(chǔ)知識的時候了栅炒。
Fragment之set/getArguments重要性
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扛禽,“玉大人锋边,你說我怎么就攤上這事皱坛”嗦” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵剩辟,是天一觀的道長掐场。 經(jīng)常有香客問我,道長贩猎,這世上最難降的妖魔是什么熊户? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮吭服,結(jié)果婚禮上嚷堡,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好蝌戒,可當我...
- 文/花漫 我一把揭開白布串塑。 她就那樣靜靜地躺著,像睡著了一般北苟。 火紅的嫁衣襯著肌膚如雪桩匪。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼过吻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蔗衡?” 一聲冷哼從身側(cè)響起纤虽,我...
- 正文 年R本政府宣布踱稍,位于F島的核電站曲饱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏珠月。R本人自食惡果不足惜扩淀,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啤挎。 院中可真熱鬧驻谆,春花似錦、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至区端,卻和暖如春值漫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背织盼。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
- 版權(quán)聲明:本文為作者原創(chuàng),轉(zhuǎn)載必須注明出處邮利。 轉(zhuǎn)載請注明出處:http://www.reibang.com/p/...
- 2017年05月30 最后的懶加載寫的不好弥雹,推薦請叫我大蘇同學寫的Fragment懶加載博客,【Android】再...
- 2005年延届,倫敦地鐵連環(huán)爆炸案 2005年7月7日早上交通高峰時間剪勿,倫敦的數(shù)個地鐵站和巴士發(fā)生連環(huán)爆炸,共造成包括...
- 時間過得真快方庭,感覺上春節(jié)的歡樂氣氛還彌漫著上空厕吉,又迎來了五月粽子飄香的家鄉(xiāng)美味。事不宜遲械念,趕緊籌備過五月...