android - 如何實現(xiàn)Fragment左右無限滑動功能?
問題描述
上面那張圖是智聯(lián)的,大概就要這樣一個效果
昨天想了半天,簡單的實現(xiàn)了這個效果github-有圖有真相思路是用一個List保存數(shù)量有限的Fragment,adapter的getCount返回Integer.MAX_VALUE但是感覺往里傳值的時候太麻煩了
請問各位有沒有合適的方法實現(xiàn)這個效果
https://github.com/qmr777/Rec...插不了圖片了。。。上面是我的實現(xiàn)
問題解答
回答1:這個不就是ViewPager + Fragment的實現(xiàn)么,只不過他要實現(xiàn)無限滑動的功能罷了。傳值還是在不同的Fragment中傳值,當(dāng)然能優(yōu)化成一個Fragment就更好了。
回答2:樓上正解,實際上就是一個viewPager,寫一個fragmentStatePagerAdapter把你的list放進(jìn)去就好,這個可以控制保存fragment的數(shù)量以及創(chuàng)建新的fragment之類的事情。
回答3:這個我曾經(jīng)做過,實現(xiàn)方式就是ViewPager+Fragment,而現(xiàn)實內(nèi)容和一些細(xì)節(jié)就是要看應(yīng)用邏輯了。
回答4:我的做法是:
假設(shè)有三個fragment,分別是f1,f2,f3.那我在初始化ViewPager的PagerAdapter的時候,總共返回5個fragment。順序是:f3,f1,f2,f3,f1。默認(rèn)的currentItem為1,即為f1。然后自定義ViewPager.OnPageChangeListener,在onPageScrollStateChanged方法中,當(dāng)狀態(tài)為IDLE(停止時),若當(dāng)前的currentItem為0,則使用setCurrentItem(4, false)。若為4,則使用setCurrentItem(1, false).
相信聰明的同學(xué)都看懂我的實現(xiàn)邏輯了。
相關(guān)文章:
1. 一個走錯路的23歲傻小子的提問2. python - 如何使用pykafka consumer進(jìn)行數(shù)據(jù)處理并保存?3. javascript - SuperSlide.js火狐不兼容怎么回事呢4. java - 創(chuàng)建maven項目失敗了 求解決方法5. android - 安卓activity無法填充屏幕6. java-se - 正在學(xué)習(xí)Java SE,為什么感覺學(xué)習(xí)Java就是在學(xué)習(xí)一些API。7. 運(yùn)行python程序時出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯誤?8. python - django 里自定義的 login 方法,如何使用 login_required()9. java - 安卓電視盒子取得了root權(quán)限但是不能安裝第三方應(yīng)用,請問該怎么辦?10. 一個mysql聯(lián)表查詢的問題
