一個不顯示全屏圖的banner無限自動輪播例子,利用recycleview實現類似viewpager效果

IncompleteScreenBanner

一個不顯示全屏圖的banner無限自動輪播例子,利用recycleview實現類似viewpager效果

背景

其實程序猿要開發一個demo的背景,都!一!樣!
說什麼爲了社會進步,爲了挑戰自我,都!是!瞎!扯!蛋!
無非就是一個背景,產品經理要求實現該功能!!!

生無可戀

廢話小說,先上gif爲敬!
這是一個gif

功能

正常來說,banner無限輪播,都是全屏的圖片去輪播,現在產品要求一張圖不佈滿全屏,讓下一個圖露出一點。。。
(雖然我看不太懂這個設計美感)

步驟

前期準備

找了一下,目測沒有現成的輪子,但看了一位大佬寫的無限輪播圖有感,我就想了一下,臥槽,我可以在這基礎上改一波呀。
在這裏真誠的感謝一波這位大哥Renny

https://github.com/ren93/RecyclerBanner.git
(如有雷同純屬巧合)

實現原理

  • 利用recycleview做一個類似viewpager的效果
  • 通過設置adapter的itemCount爲Integer.MAX_VALUE,再把默認的第一個item設置到*10000的位置去,曲線實現無限輪播功能
  • 繼承工具類SnapHelper,實現拖動itemView有viewpager的feel而且自動適配位置回彈

貌似看起來也不難吧

這是一隻發春的狗

重點

其中,繼承SnapHelper是重點,這是一個用於輔助RecyclerView在滾動結束時將Item對齊到某個位置,而官方中也有兩個子類LinearSnapHelper、PagerSnapHelper,都能讓item滑動後自動停留在recycleview的中間。很遺憾,這兩個官方的子類不滿足我們的功能需求,但是!我可以複製出來改它一波呀!

哥就是自信

改完了,就依賴關聯上recycleview,完美!

new MyCustomSnapHelper().attachToRecyclerView(mRecyclerView);

結束

更多詳情,請前往我的github去擼,代碼裏面都有清楚的註釋

https://github.com/xiaofuchen/IncompleteScreenBanner

順手給Stars是中華人民的美德
謝謝

送美女一枚

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章