android - 如何實(shí)現(xiàn)Fragment左右無(wú)限滑動(dòng)功能?
問(wèn)題描述
上面那張圖是智聯(lián)的,大概就要這樣一個(gè)效果
昨天想了半天,簡(jiǎn)單的實(shí)現(xiàn)了這個(gè)效果github-有圖有真相思路是用一個(gè)List保存數(shù)量有限的Fragment,adapter的getCount返回Integer.MAX_VALUE但是感覺(jué)往里傳值的時(shí)候太麻煩了
請(qǐng)問(wèn)各位有沒(méi)有合適的方法實(shí)現(xiàn)這個(gè)效果
https://github.com/qmr777/Rec...插不了圖片了。。。上面是我的實(shí)現(xiàn)
問(wèn)題解答
回答1:這個(gè)不就是ViewPager + Fragment的實(shí)現(xiàn)么,只不過(guò)他要實(shí)現(xiàn)無(wú)限滑動(dòng)的功能罷了。傳值還是在不同的Fragment中傳值,當(dāng)然能優(yōu)化成一個(gè)Fragment就更好了。
回答2:樓上正解,實(shí)際上就是一個(gè)viewPager,寫一個(gè)fragmentStatePagerAdapter把你的list放進(jìn)去就好,這個(gè)可以控制保存fragment的數(shù)量以及創(chuàng)建新的fragment之類的事情。
回答3:這個(gè)我曾經(jīng)做過(guò),實(shí)現(xiàn)方式就是ViewPager+Fragment,而現(xiàn)實(shí)內(nèi)容和一些細(xì)節(jié)就是要看應(yīng)用邏輯了。
回答4:我的做法是:
假設(shè)有三個(gè)fragment,分別是f1,f2,f3.那我在初始化ViewPager的PagerAdapter的時(shí)候,總共返回5個(gè)fragment。順序是:f3,f1,f2,f3,f1。默認(rèn)的currentItem為1,即為f1。然后自定義ViewPager.OnPageChangeListener,在onPageScrollStateChanged方法中,當(dāng)狀態(tài)為IDLE(停止時(shí)),若當(dāng)前的currentItem為0,則使用setCurrentItem(4, false)。若為4,則使用setCurrentItem(1, false).
相信聰明的同學(xué)都看懂我的實(shí)現(xiàn)邏輯了。
相關(guān)文章:
1. html5 - ElementUI table中el-table-column怎么設(shè)置百分比顯示。2. python - 使用readlines()方法讀取文件內(nèi)容后,再用for循環(huán)遍歷文件與變量匹配時(shí)出現(xiàn)疑難?3. 對(duì)mysql某個(gè)字段監(jiān)控的功能4. css3 - less或者scss 顏色計(jì)算的知識(shí)應(yīng)該怎么學(xué)?或者在哪里學(xué)?5. 注冊(cè)賬戶文字不能左右分離6. javascript - table列過(guò)多,有什么插件可以提供列排序和選擇顯示列的功能7. css - 網(wǎng)頁(yè)div區(qū)塊 像蘋果一樣可左右滑動(dòng) 手機(jī)與電腦8. javascript - 數(shù)組的過(guò)濾和渲染9. html - vue項(xiàng)目中用到了elementUI問(wèn)題10. JavaScript事件
