国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

ViewPager+Fragment避免重復(fù)createview

2019-11-09 16:01:19
字體:
供稿:網(wǎng)友

ViewPager+Fragment避免重復(fù)createview

每次使用ViewPager+Fragment來作為app的框架的時(shí)候都要格外小心,因?yàn)樗麄兊纳芷谟悬c(diǎn)奇怪,并沒有Activity那樣來得自然。如何奇怪呢,請看下面日志
打開app,一開始為第一個(gè)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切換到第二個(gè)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切換到第三個(gè)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切換到第四個(gè)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最后且回到第一個(gè)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都是一次就行了,因?yàn)橛袝r(shí)候請求網(wǎng)絡(luò)啊,或者一些數(shù)據(jù)已經(jīng)改變了,后來再切回來就恢復(fù)了初始狀態(tài)。Android官方為了性能,做了這樣的靈活設(shè)置,切換到下一個(gè)fragment的時(shí)候會(huì)預(yù)加載相鄰的Fragment,然后把不相鄰的都銷毀掉,切回被銷毀掉的Fragment的時(shí)候又會(huì)重新createView一次。這樣做可能性能得到提高,可是實(shí)際開發(fā)中卻顯得有點(diǎn)不方便,也許是我沒有領(lǐng)會(huì)到更高級的寫法。那么我只想要他們老老實(shí)實(shí)的像Activity一樣怎么辦呢?這就是這篇文章的目的解決辦法:具體情況看我寫的這個(gè)demo,自定義了一個(gè)Fragment的超類BaseFragment,只要繼承這個(gè)BaseFragment,不要復(fù)寫生命周期,復(fù)寫幾個(gè)方法就可以了。使用情況請看上面的注釋。下載地址:http://download.csdn.net/detail/u014736095/9750716很多時(shí)候開發(fā)者我為了方便使用了show和hind的方法去控制他們,因?yàn)檫@樣可以解決viewpager的預(yù)加載問題。但是這樣沒有切換動(dòng)畫,如重Fragment1切換到Fragment4,用show和hind就不會(huì)按照1.2.3-->4這樣的切換動(dòng)畫,而是1-->4。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 清流县| 周宁县| 钦州市| 河北区| 五家渠市| 津南区| 庆城县| 凌源市| 兴宁市| 隆安县| 日土县| 玉田县| 汉中市| 玉溪市| 云浮市| 青铜峡市| 修武县| 佛冈县| 通榆县| 西乡县| 大关县| 叙永县| 阿克苏市| 本溪市| 崇义县| 乡城县| 广昌县| 四会市| 漠河县| 梨树县| 乌兰察布市| 曲周县| 阳朔县| 鄂尔多斯市| 沂源县| 澳门| 塔河县| 特克斯县| 夏津县| 洱源县| 邻水|