RecyclerView的item中嵌套RecyclerView的滑动冲突解决

RecyclerView的item中嵌套RecyclerView的滑动冲突解决

mBinding.rvBrand.addOnItemTouchListener(object : RecyclerView.OnItemTouchListener {
                        override fun onTouchEvent(rv: RecyclerView, e: MotionEvent) {
                        }

                        override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean {
                            // 外层RV滑动与内层布局滑动冲突解决
                            // 找到被点击位置的item的rootView
                            val itemView = rv.findChildViewUnder(e.x, e.y)
                            if (itemView != null) {
                                // 通过rootView找到对应的ViewHolder
                                val holder = rv.getChildViewHolder(itemView)
                                val recyclerViewSmallCoupon = holder.itemView.recyclerViewSmallCoupon
                                recyclerViewSmallCoupon?.let {
                                    recyclerViewSmallCoupon.requestDisallowInterceptTouchEvent(true)
                                }

                            }

                            return false

                        }

                        override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) {
                        }

                    })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容