PagerSnapHelper踩坑記錄

需求:界面由兩部分組成,頂部一個圖片,圖片下面是列表。在列表滑動時,圖片跟著滑動。并且列表要類似ViewPager,一次滑動一個item。

實現(xiàn):CoordinatorLayout [ AppBarLayout [ ImageView ] , RecyclerView ]。其中 RecyclerView 使用 PagerSnapHelper。

結果:快速的劃一下,AppBarLayout 剛開始跟著一起滑動。當觸發(fā) RecyclerView 的 Fling 時,AppBarLayout 不動了,沒有按預期的繼續(xù)滑動。

原因:PagerSnapHelper 的父類 SnapHelper extends RecyclerView.OnFlingListener,重寫了其中的 onFling 方法,并且 return true。這表示 RecyclerView 自己消費掉了該次的 MotionEvent 事件,onFling 沒能傳遞出去。

解決:寫一個類 MyPagerSnapHelper 繼承 PagerSnapHelper,重寫 onFling 方法,返回 false。用 MyPagerSnapHelper 替換掉原來的。

class MyPagerSnapHelper : PagerSnapHelper() {
    override fun onFling(velocityX: Int, velocityY: Int): Boolean {
        super.onFling(velocityX, velocityY)
        return false
    }
}
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,048評論 2 59
  • 目錄介紹 01.基礎組件(19篇) 02.IPC機制(7篇) 03.View原理(9篇) 04.動畫機制(2篇) ...
    i小灰閱讀 3,097評論 1 84
  • 目錄介紹 25.0.0.0 請說一下RecyclerView?adapter的作用是什么,幾個方法是做什么用的?如...
    楊充211閱讀 1,112評論 1 10
  • ItemDecoration RecyclerView.ItemDecoration注釋是這樣寫的 允許程序添加特...
    30cf443c3643閱讀 244評論 0 6
  • 目錄介紹 01.先來看一下需求 02.有幾種實現(xiàn)方式2.1 使用ViewPager2.2 使用RecyclerVi...
    楊充211閱讀 4,830評論 3 63

友情鏈接更多精彩內(nèi)容