1. 程式人生 > 實用技巧 >ViewPager 子View中橫向RecyclerView 滑動衝突解決方法

ViewPager 子View中橫向RecyclerView 滑動衝突解決方法

專案中有個功能點用到了SlidingTabLayout、ViewPaper的子頁面中有個橫向滑動的RecyclerVuew,需求是滑動RecyclerView時,不把事件傳遞給ViewPaper,也就是不想RecyclerView滑動到頭時不切換ViewPaper。查詢百度一個方案是在RecyclerView中重寫onTouchEvent方法,然後在MotionEvent.ACTION_MOVE事件中設定:getParent().requestDisallowInterceptTouchEvent(true);初步測試是滿足需求的,但是遇到一個問題:RecyclerView滑動到頭後,放開,然後繼續滑動事件還是被ViewPaper獲取到了。所以猜想問題就是出在了RecyclerView滑動到頭後的判斷上。檢視原始碼

,滑動到頭後會返回false,沒有細看返回false的情況,有時間的可以自己研究下。嘗試了下重寫canScrollHorizontally,橫向滑動不管是不是到頭,都設為仍可以滑動。執行檢視,問題解決。。