社区
Android
帖子详情
只能在自定义的ViewGroup中设置分发 ,拦截方法吗?
wow334
2020-05-28 08:49:29
如题,
系统自己的 LinearLayout 这些无法设置吗?
比如我有一个具体的LinearLayout 叫 mLinearLayout , 有没有什么set方法之类的来改变它的分发,拦截行为?
只能用myLinearLayout extends LinearLayout 后 ,通过重写才能设置分发 ,拦截方法?
...全文
266
2
打赏
收藏
只能在自定义的ViewGroup中设置分发 ,拦截方法吗?
如题, 系统自己的 LinearLayout 这些无法设置吗? 比如我有一个具体的LinearLayout 叫 mLinearLayout , 有没有什么set方法之类的来改变它的分发,拦截行为? 只能用myLinearLayout extends LinearLayout 后 ,通过重写才能设置分发 ,拦截方法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bdmh
2020-06-02
打赏
举报
回复
继承一个,然后拦截touch动作,比如onInterceptTouchEvent等
键盘舞者113
2020-05-29
打赏
举报
回复
不能,但你可以通过设置自己写的view,通过getParent().requestDisallowInterceptTouchEvent(true)使得自己写的view获得触摸事件,
完全理解android事件
分发
机制
#前言 之前笔者其实已经写过事件
分发
机制的文章:[快速理解android事件传递
拦截
机制概念](http://blog.csdn.net/double2hao/article/details/51541061) 但是,现在看来其实更像是一篇知识概括,多出可能未讲清楚,于是打算重写事件
分发
,用一篇文章大致讲清楚。 首先,形式上笔者最先思考的是使用源码,此者能从原理上讲解
分发
机制,比起侃侃而谈好得多。但是源码的复杂往往会让新手产生畏惧难以理解,于是笔者最终还是打算使用实例log来让读者理解android事件
分发
。 #重要函数 笔者此次主要提及最常用的几个函数: (其间区别看源码很容易理解,此处直接给上结果) **onClick():**这个函数是是
View
提供给我们的OnClickListener这个接口
中
的函数,在这里可以
自定义
对点击事件的处理逻辑。会在onTouchEvent()
中
进行调用。 **onTouch():**这个函数是
View
提供给我们的OnTouchListener这个接口
中
的函数,在这里面可以
自定义
对触摸事件的处理逻辑。 **onTouchEvent():**这个函数是
view
内部的触摸事件的处理方式,其间包括获取焦点,调用onClick()等等。 **dispatchTouchEvent():**这个是
View
的事件
分发
函数,在
View
Group
中
进行重写。在
View
中
其间会调用onTouchEvent(),在
View
Group
中
其间会调用onInterceptTouchEvent()和onTouchEvent()。 **onInterceptTouchEvent():**这个函数是事件
拦截
函数,是
View
Group
才有的函数。
Android Scroller及下拉刷新组件原理解析
Android事件
拦截
机制 Android
中
事件的传递和
拦截
和
View
树结构是相关联的,在
View
树
中
,分为叶子节点和普通节点,普通节点有子节点
只能
是
View
Group
,叶子节点可以是
View
或者
View
Group
。Android和事件
分发
拦截
相关的
方法
有 dispatchTouchEvent(MotionEvent ev) 事件
分发
相关的
方法
,沿着
View
树将一个用户的触摸事件向下
分发
。 onInterceptTouchEvent(MotionEvent ev) 在dispatchTouchEvent
中
被调用,用来判断某一层级是否
拦截
一个事件,返回true即
拦截
,事件不会再向下
分发
,
android onTouchEvent处理机制总结(必看)
项目
中
总会用到一些触摸事件,每次使用都是百度各种资料,看各种大神的分析笔记。这次我自己总结下关于触摸事件的一些知识点。一来可以让自己对触摸事件印象更加深刻,也给以后的项目做一个参考。最难理解的其实是onTouchEvent
方法
。 一、 概述 1.只有
view
,
View
Group
,Activity 具有事件
分发
和消费的功能。 2.Activity因为上最先接触到触摸事件,因此Activity没有事件
拦截
方法
。即没有dispatchTouchEvent
方法
。 3.对于不能添加子控件的
view
,不能对事件进行
分发
和
拦截
,它只有onTouchEvent事件。 二、三个
方法
1.public bool
Android触摸事件传递机制
前言:在Android开发
中
,经常会遇到触摸事件冲突,比如
View
Pager的轮播图跟Fragment的划动事件冲突,或者轮播图跟下拉事件冲突,
自定义
view
的事件处理等,本文章将会详细介绍Activity、
View
、
View
Group
三者的触摸事件传递机制,传递包括三个阶段:
分发
、
拦截
、消费。 本文章将会详细介绍Activity、
View
、
View
Group
三者的触摸事件传递机制,传递包括三个阶段:
分发
、
拦截
、消费。 一.触摸事件的类型 触摸事件对应的是 MotionEvent 类,事件类型主要有三种: ACTION_DOWN:用户按下操作,表示一次触摸事件的开始。 ACTION_
自定义
view
group
中
的事件
分发
自定义
view
中
的事件
分发
机制
Android
80,337
社区成员
91,284
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章