仿微信未读RecyclerView平滑滚动定位效果
效果圖有紅點的地方表示有未讀消息,依次雙擊首頁圖標定位,然后定位到某個未讀在手動下滑一點距離在次點擊定位效果
用過?RecyclerView 的人都知道,自帶有幾個滾動到item下標的方法,但是不靠譜,靠譜的又沒有平滑效果,所以還是得自己寫,主要是模仿了微信的一些定位邏輯
首先,要滾動到指定的坐標出,可以借用recyclerview自帶的幾個方法,但是無論哪個方法首先得需要指定position,所以第一件事情就是先把position找準確了
?
上面代碼就是查詢出可見條目開始最近的一條未讀item的position,接下來就是直接平滑滾動定位到未讀的item條目了,這里就需要用到兩個方法了,?smoothScrollToPosition 這個方法是有平滑效果的,但是只能從下往上的時候才是我們想要的效果,所以我們還需要用另外的方法用于從上往下平滑滾動
這里用?smoothScrollBy 來滾動,smoothScrollBy方法需要一個top坐標,而不是position,所以這個需要先獲取到定位item的top坐標,這里recyclerview也都有自帶的方法,所以最后的方法如下
到這里就可以達到上面效果圖的效果了,每次雙擊都會找到你顯示位置的下一個未讀item,然后定位平滑過去,上滑一點在次雙擊回到最近的未讀item,到達最后一條item自動回滾到開始第一條未讀item
?GitHub:https://github.com/1024477951/FragmentApp
轉(zhuǎn)載于:https://www.cnblogs.com/LiuZhen/p/9884948.html
總結(jié)
以上是生活随笔為你收集整理的仿微信未读RecyclerView平滑滚动定位效果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库状态标识位flag设计
- 下一篇: 课堂练习:返回一个二维数组中最大子数组的