嘛嘛...遇到的问题是这样的,我仿照微信的长按点击显示放大文本效果对TextView(定制)设置了长按点击事件,然后在RecyclerView中使用了这个组件,然后对RecyclerView的每一个item设置了点击事件,然后就出现了点击冲突的问题.这种问题真的不太想网上搜索解决方法,因为很多人水平比我还差= =,所以想着自己解决= =,实现的思路也是很简单,但是要考虑到以后出现同样的问题该怎么办,所以还是嗯...不仅仅解决这个问题本身吧.

说真的,接口真的是一个好东西.

首先,我使用的框架所有组件都实现了这样一个接口

public interface ICustomView {void isBlind(boolean isBlind);

}

这个接口中包含了对于每个组件的属性的描述,面向接口编程嘛= =.另外属性就不显示了,因为我很懒= =,姑且当这个接口只有一个方法吧.

然后每个组件都要实现这样一个方法,传入的参数用来判定组件是否会对事件起反应.Blind的意思即为是否是真瞎.

事件分发机制就不详细讲了,网上的讲解也很多,把简单的事情讲的云里雾里的很多,讲的不错的也很多.

这里我还是打算使用很暴力的方法,因为子组件一旦消费的事件,父组件就和消费事件无缘了不是吗,所以这里我的处理方式就很明显了.

重写组件的dispatchTouchEvent()方法即可.就拿我这里的例子为例,如果希望子组件不消费事件,也就是点击子组件的情况下出发父组件的点击事件,只需要让isBlind()返回true即可.就这么简单= =,话说这篇文章是不是很水啊= =,嘛,反正我写博客也不是为了出名= =

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

RecyclerView父组件和子组件点击冲突问题解决相关推荐

  1. 微信小程序——1、自定义顶部渐变色2、封装好的自定义顶部栏(父组件获取子组件的点击事件)

    1.自定义顶部渐变色 第一种使用代码实现渐变 效果图: .json代码 "navigationStyle":"custom" .wxml代码 <view ...

  2. React子组件给父组件传值, 父组件引用子组件并给子组件传值

    本博客代码是 React 父组件和子组件相互传值的 demo:实现封装一个折线图,折线图选择下拉框,获取下拉框点击的值并且传给父组件根据下拉框筛选的条件更新视图:效果图如下: 父组件代码: 代码解析: ...

  3. Vue父组件和子组件之间传递数据

    Vue父组件和子组件之间传递数据 klmhly 已关注 2018.05.19 19:56* 字数 367 阅读 23评论 0喜欢 0 一.概念解析 挂载点: Vue实例的el属性对应的id,vue只会 ...

  4. 【Android TV 开发】焦点处理 ( 父容器与子组件焦点获取关系处理 | 不同电视设备上的兼容问题 | 触摸获取焦点 | 按键获取焦点 )

    Android TV 开发系列文章目录 [Android TV 开发]安卓电视调试 ( 开启网络远程调试 ) [Android TV 开发]焦点处理 ( 父容器与子组件焦点获取关系处理 | 不同电视设 ...

  5. 组件间数据交互——父组件向子组件传值( props属性值类型) 子组件向父组件传值-携带参数 || 非父子组件间传值

    父组件向子组件传值 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  6. Angular中父子组件之间父组件给子组件传值、传递方法、传递自己

    场景 Angular介绍.安装Angular Cli.创建Angular项目入门教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  7. vue父组件使用子组件函数,vue子组件使用父组件函数

    (1)vue中父组件调用子组件函数 用法: 子组件上定义ref="refName", 父组件的方法中用 this.$refs.refName.method 去调用子组件方法 详解: ...

  8. vue 父组件与子组件之间的传值(普通传值)

    一,子组件向父组件传值($emit): 1.定义子组件 <template><div>子组件:<span>{{childValue}}</span>&l ...

  9. jquery查找父窗体id_Vue父组件获取子组件中的变量

    全世界只有不到3 % 的人关注了我 你真是个特别的人 在vue项目日常开发中,难免要把功能性组件抽离出来,这样结构就会出现父子组件,兄弟组件等,但是这样就会涉及到不同组件需要互相使用其中的某个值的问题 ...

  10. 父组件给子组件传值方法_【Vue】小学生都能看懂的子父组件传值

    Vue组件是学习Vue框架最比较难的部分,而这部分难点我认为可以分为三个部分学习,其中之一就是组件的传值. 搭建的框架目录结构 一.父传子动图效果及源码 父传子源码: 父组件: 子组件: 二.子传父动 ...

最新文章

  1. 第十六届全国大学生智能车| AI视觉组新手入门教程
  2. Ocelot中文文档-缓存
  3. 怎样将包含元组的列表转换为字典?
  4. 9-Building FIP images with support for Trusted Board Boot
  5. 公众平台模板消息所在行业_第三方工具微信公众号模板消息群发如何操作?
  6. java全局异常处理_详解Spring全局异常处理的三种方式
  7. 选轻量应用服务器or云服务器ECS?一图帮你彻底区分
  8. python random()*10的值不可能是_Python
  9. 护肤品APP界面设计模板,可以临摹的UI好素材
  10. A星寻路算法(A* Search Algorithm)
  11. java具有回收垃圾的作用吗_Java中垃圾回收功能
  12. 学习java软件开发大概要多久?
  13. vb红绿灯自动切换_vb教程之用VB编写“红绿灯”程序
  14. 6.1 PyTorch简单二分类模型
  15. 对一个浮点数保留两位小数
  16. 计算机网络学习笔记11(P2P)
  17. 程序从源代码到可执行程序
  18. 双十一哪款蓝牙耳机值得入手?音质超棒的蓝牙耳机推荐
  19. ol-地图上添加图标
  20. 25、Java面向对象——抽象类和抽象方法、接口

热门文章

  1. tcp校验和计算校验和例子_浅谈TCP协议,总算明白它是干什么的了
  2. mysql搜索规则_MySQL基于规则优化
  3. 使用TCP协议干活,需要校验位吗?
  4. matlab using mtimes,同版本matlab、同一.m文件,为何一个顺利执行、另一个出错?
  5. php 单一职责,PHP之单例模式(职责模式)
  6. mysql配置文件说明_mysql配置文件详解说明
  7. Git HEAD 意思详解 和版本回退
  8. 你连原理都还没弄明白?java文档注释快捷键idea
  9. Android移动开发之【Android实战项目】DAY2-使用Fragment实现底部菜单栏
  10. linux查找maven安装目录_Linux 安装 maven