RecyclerView的item中嵌套RecyclerView

2021-03-17  本文已影响0人  颤抖的闪电

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) {
                        }

                    })
上一篇 下一篇

猜你喜欢

热点阅读