前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >使用BRVAH RecycleView 嵌套RecycleView点击Item里面内容无法响应

使用BRVAH RecycleView 嵌套RecycleView点击Item里面内容无法响应

作者头像
全栈程序员站长
发布2021-04-07 15:05:27
发布2021-04-07 15:05:27
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

问题描述 使用BRVAH (大猴子)RecycleView 嵌套RecycleView 点击Item 子类RecycleView内容的部分无法被点击。

解决办法 将子类RecycleView 重新定义一下 对其触摸事件让自身控件对其事件进行消费 (通俗的讲就是不让子类的RecycleView 自己有点击事件) 把这个替换成子类的RecycleView 完美解决问题。

【 NoTouchRecyclerViewX 工具类】

代码语言:javascript
代码运行次数:0
复制
/** * Created by Xia_焱 on 2020/5/14. * 邮箱:xiaohaotianV@163.com */
public class NoTouchRecyclerViewX extends RecyclerView {
   

    public NoTouchRecyclerViewX(Context context) {
   
        super(context);
    }

    public NoTouchRecyclerViewX(Context context, @Nullable AttributeSet attrs) {
   
        super(context, attrs);
    }

    public NoTouchRecyclerViewX(Context context, @Nullable AttributeSet attrs, int defStyle) {
   
        super(context, attrs, defStyle);
    }
    @Override
    public boolean onTouchEvent(MotionEvent e) {
   
        return false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent e) {
   
        return true;
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
   
        return super.dispatchTouchEvent(ev);
    }

}

科普一下 事件分发中如果方法返回true,那么代表事件就此消费,不会继续往别的地方传了,事件终止。

dispatchTouchEvent 和 onTouchEvent 一旦return true,事件就停止传递了,对于return true事件被消费了,消费了的意思就是事件走到这里就是终点,不会往下传,没有谁能再收到这个事件了。

[希望这篇文章可以帮到你]

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年3月12日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档