亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ViewPager+Fragment避免重復createview

2019-11-09 14:50:56
字體:
來源:轉載
供稿:網友

ViewPager+Fragment避免重復createview

每次使用ViewPager+Fragment來作為app的框架的時候都要格外小心,因為他們的生命周期有點奇怪,并沒有Activity那樣來得自然。如何奇怪呢,請看下面日志
打開app,一開始為第一個Fragment02-09 14:02:12.551 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1 setUserVisibleHint.isVisibleToUser=false02-09 14:02:12.551 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2 setUserVisibleHint.isVisibleToUser=false02-09 14:02:12.551 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1 setUserVisibleHint.isVisibleToUser=true02-09 14:02:12.551 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onAttach02-09 14:02:12.551 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onCreate02-09 14:02:12.551 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onAttach02-09 14:02:12.551 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onCreate02-09 14:02:12.551 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onCreateView02-09 14:02:12.561 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onActivityCreated02-09 14:02:12.561 30159-30159/com.tianjiyun.glycuresis W/FragmentManager: moveToState: Fragment state for MainFragment2{5434690 #0 id=0x7f0c0056 android:switcher:2131492950:1} not updated inline; expected state 3 found 202-09 14:02:12.561 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onCreateView02-09 14:02:12.561 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onActivityCreated02-09 14:02:12.561 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onStart02-09 14:02:12.561 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onResume02-09 14:02:12.561 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onStart02-09 14:02:12.561 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onResume切換到第二個Fragment02-09 14:03:21.981 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3 setUserVisibleHint.isVisibleToUser=false02-09 14:03:21.981 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1 setUserVisibleHint.isVisibleToUser=false02-09 14:03:21.981 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2 setUserVisibleHint.isVisibleToUser=true02-09 14:03:21.981 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3onAttach02-09 14:03:21.981 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3onCreate02-09 14:03:21.981 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3onCreateView02-09 14:03:21.991 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3onActivityCreated02-09 14:03:21.991 30159-30159/com.tianjiyun.glycuresis W/FragmentManager: moveToState: Fragment state for MainFragment3{863ec84 #2 id=0x7f0c0056 android:switcher:2131492950:2} not updated inline; expected state 3 found 202-09 14:03:21.991 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3onStart02-09 14:03:21.991 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3onResume切換到第三個Fragment02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4 setUserVisibleHint.isVisibleToUser=false02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2 setUserVisibleHint.isVisibleToUser=false02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3 setUserVisibleHint.isVisibleToUser=true02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4onAttach02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4onCreate02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onPause02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onStop02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onDestroyView02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4onCreateView02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4onActivityCreated02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis W/FragmentManager: moveToState: Fragment state for MainFragment4{6fa481c #3 id=0x7f0c0056 android:switcher:2131492950:3} not updated inline; expected state 3 found 202-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4onStart02-09 14:04:54.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4onResume切換到第四個Fragment02-09 14:05:30.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3 setUserVisibleHint.isVisibleToUser=false02-09 14:05:30.941 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4 setUserVisibleHint.isVisibleToUser=true02-09 14:05:30.951 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onPause02-09 14:05:30.951 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onStop02-09 14:05:30.951 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onDestroyView最后且回到第一個Fragment02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1 setUserVisibleHint.isVisibleToUser=false02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2 setUserVisibleHint.isVisibleToUser=false02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4 setUserVisibleHint.isVisibleToUser=false02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1 setUserVisibleHint.isVisibleToUser=true02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onCreateView02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onActivityCreated02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onStart02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment1onResume02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onCreateView02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onActivityCreated02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis W/FragmentManager: moveToState: Fragment state for MainFragment2{5434690 #0 id=0x7f0c0056 android:switcher:2131492950:1} not updated inline; expected state 3 found 202-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onStart02-09 14:06:05.651 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment2onResume02-09 14:06:06.101 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3onPause02-09 14:06:06.101 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3onStop02-09 14:06:06.101 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment3onDestroyView02-09 14:06:06.101 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4onPause02-09 14:06:06.101 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4onStop02-09 14:06:06.101 30159-30159/com.tianjiyun.glycuresis V/Kuby_test: MainFragment4onDestroyView一般createView都是一次就行了,因為有時候請求網絡啊,或者一些數據已經改變了,后來再切回來就恢復了初始狀態。Android官方為了性能,做了這樣的靈活設置,切換到下一個fragment的時候會預加載相鄰的Fragment,然后把不相鄰的都銷毀掉,切回被銷毀掉的Fragment的時候又會重新createView一次。這樣做可能性能得到提高,可是實際開發中卻顯得有點不方便,也許是我沒有領會到更高級的寫法。那么我只想要他們老老實實的像Activity一樣怎么辦呢?這就是這篇文章的目的解決辦法:具體情況看我寫的這個demo,自定義了一個Fragment的超類BaseFragment,只要繼承這個BaseFragment,不要復寫生命周期,復寫幾個方法就可以了。使用情況請看上面的注釋。下載地址:http://download.csdn.net/detail/u014736095/9750716很多時候開發者我為了方便使用了show和hind的方法去控制他們,因為這樣可以解決viewpager的預加載問題。但是這樣沒有切換動畫,如重Fragment1切換到Fragment4,用show和hind就不會按照1.2.3-->4這樣的切換動畫,而是1-->4。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品小视频在线观看| 亚洲欧美日韩中文视频| 国产这里只有精品| 欧美床上激情在线观看| 综合136福利视频在线| 久久在精品线影院精品国产| 国产激情久久久| 亚洲成人精品久久| 欧美国产日韩一区二区在线观看| 中文字幕久久久| 亚洲色图在线观看| 成人激情综合网| 欧美激情网友自拍| 亚洲午夜精品久久久久久性色| 欧美风情在线观看| 91亚洲精品一区| 国产主播在线一区| 国内精品久久久久久久久| 国产成人在线亚洲欧美| 日韩av快播网址| 秋霞午夜一区二区| 欧美一区二区大胆人体摄影专业网站| 一区二区三区四区精品| 久久精品色欧美aⅴ一区二区| 国产综合香蕉五月婷在线| 精品色蜜蜜精品视频在线观看| 精品久久久久久久中文字幕| 日韩大胆人体377p| 日韩国产在线播放| 日韩在线观看成人| 91av成人在线| 亚洲码在线观看| 国产精品无码专区在线观看| 国产精品极品在线| 性夜试看影院91社区| 国产精品v日韩精品| 国产极品jizzhd欧美| 久久成人一区二区| 国产精品久久久久久av| 国产精品日韩在线| 精品国产一区av| 亚洲人a成www在线影院| 成人免费看吃奶视频网站| 欧洲成人在线视频| 日本19禁啪啪免费观看www| 久久精品一区中文字幕| 亚洲综合在线小说| 国内精品美女av在线播放| 国产日韩亚洲欧美| 国产精品丝袜久久久久久不卡| 久久九九精品99国产精品| 在线观看日韩av| 亚洲天堂av在线免费观看| 国外成人在线播放| 欧美精品久久久久久久免费观看| 日韩中文字幕在线播放| 亚洲精品乱码久久久久久按摩观| 亚洲综合在线播放| 亚洲午夜精品久久久久久性色| 国产精品视频成人| 丝袜亚洲欧美日韩综合| 中文字幕亚洲欧美一区二区三区| 亚洲天天在线日亚洲洲精| 日韩小视频在线观看| 亚洲精品久久久久| 中文字幕日韩精品在线| 国产精品视频白浆免费视频| 91麻豆桃色免费看| 一区二区三区高清国产| 成人h视频在线| 久久亚洲国产精品| 色婷婷亚洲mv天堂mv在影片| 久久国产精品偷| 一本色道久久综合狠狠躁篇怎么玩| 欧美日韩一二三四五区| 日韩av免费在线播放| 亚洲奶大毛多的老太婆| 性色av一区二区三区在线观看| 日本精品在线视频| 久久97精品久久久久久久不卡| 欧美激情视频在线观看| 精品亚洲一区二区| 精品久久久久久久久久久久久久| 成人性生交大片免费观看嘿嘿视频| 色系列之999| 91免费视频网站| 日韩精品免费一线在线观看| 中文字幕亚洲在线| 96国产粉嫩美女| 日韩视频免费在线| 精品久久久久久中文字幕一区奶水| 色中色综合影院手机版在线观看| 久久久亚洲欧洲日产国码aⅴ| 中文.日本.精品| 亚洲欧美制服丝袜| 日韩大片免费观看视频播放| 亚洲第一av网| 精品久久久久久久久中文字幕| 欧美性猛交99久久久久99按摩| 欧美中文在线免费| 国产成人精品久久亚洲高清不卡| 欧美性猛交xxxx黑人| 亚洲人在线视频| 久久精品福利视频| 日韩av电影国产| 欧美日韩在线另类| 欧美体内谢she精2性欧美| 欧美性生交大片免费| 国产精品91在线| 日韩中文字幕在线视频播放| 久久久久久久999精品视频| 日韩美女免费视频| 亚洲第一精品自拍| 国产精品黄色影片导航在线观看| 日韩精品在线免费观看| 97av在线播放| 国产一区深夜福利| 日韩精品在线观看一区| 久久亚洲综合国产精品99麻豆精品福利| 91亚洲人电影| 青青在线视频一区二区三区| 亚洲一区二区久久久久久| 日韩在线中文字幕| 国产精品一二三视频| 欧美巨大黑人极品精男| 91精品视频免费观看| 57pao成人国产永久免费| 91国产视频在线| 青青a在线精品免费观看| 国精产品一区一区三区有限在线| 亚洲天堂成人在线视频| 亚洲精品日韩在线| 美日韩精品免费视频| 国产精品国语对白| 久久在精品线影院精品国产| 精品二区三区线观看| 国产精品视频午夜| 在线看日韩av| 欧美一级淫片播放口| 欧美一区二区色| 深夜精品寂寞黄网站在线观看| 粉嫩老牛aⅴ一区二区三区| 欧美成人精品在线观看| 91探花福利精品国产自产在线| 亚洲国产97在线精品一区| 全球成人中文在线| 国产欧美最新羞羞视频在线观看| 精品中文字幕在线2019| 日韩国产欧美精品一区二区三区| 久久精品视频va| 国产精品亚洲аv天堂网| 日韩精品www| 亚洲激情电影中文字幕| 亚洲人永久免费| 久久久精品国产| 精品偷拍各种wc美女嘘嘘| 亚洲国产成人91精品| 69久久夜色精品国产69| 欧美裸体视频网站| 久久久久久噜噜噜久久久精品| 亚洲精品福利在线| 欧美精品在线观看91| 欧美视频裸体精品| 国产精品流白浆视频|