这几天遇到点关于Android的触摸事件相关的,还跟onClick有关,暂且记下:

LinearLayout分别设置了onTouchListener,onClickListener,onLongClickListener及onTouchEvent回调
1、在屏幕上触摸之后基本的执行流程如下:
onTouch,action=0 onTouchEvent,action=0 onTouch,action=2 onTouchEvent,action=2 onTouch,action=2 onTouchEvent,action=2 onTouch,action=1 onTouchEvent,action=1 onClick
也就是先说onTouchListener是最先被触发的,然后是本身的onTouchEvent回调;当最后的up事件发生并被onTouchEvent处理后才会触发onClickListener。
2、把onTouchEvent回调中的super.onTouchEvent去除,直接返回true;则流程如下:
onTouch,action=0 onTouchEvent,action=0 onTouch,action=2 onTouchEvent,action=2 onTouch,action=2 onTouchEvent,action=2 onTouch,action=1 onTouchEvent,action=1
可以看到onClickListener永远无法被触发,也侧面说明了对onClick的触发是在onTouchEvent回调中来实现的。
3、长按屏幕,流程如下:
onTouch,action=0 onTouchEvent,action=0 onTouch,action=2 onTouchEvent,action=2 onTouch,action=2 onTouchEvent,action=2 onLongClick onTouch,action=2 onTouchEvent,action=2 onTouch,action=2 onTouchEvent,action=2 onTouch,action=1 onTouchEvent,action=1 onClick
当长按的时候,无需到up就会触发onLongClick的响应,但之后也会继续触发onClick的响应。
4、但如果在onLongClick中返回true,则流程如下,即只在中间触发了onLongClick,之后会继续响应touch,但当up的时候就不会再触发onClick
onTouch,action=0 onTouchEvent,action=0 onTouch,action=2 onTouchEvent,action=2 onTouch,action=2 onTouchEvent,action=2 onLongClick onTouch,action=2 onTouchEvent,action=2 onTouch,action=2 onTouchEvent,action=2 onTouch,action=1 onTouchEvent,action=1
测试代码如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FrameLayout frame = (FrameLayout)findViewById(R.id.container);
LinearLayoutTest line = new LinearLayoutTest(this);
line.setOnClickListener(new ClickListener());
line.setOnLongClickListener(new LongClickListener());
line.setOnTouchListener(new TouchListener());
line.setLongClickable(true);
frame.addView(line);
}
public class ClickListener implements OnClickListener {
@Override
public void onClick(View v) {
Log.e("test","onClick");
}
}
public class LongClickListener implements OnLongClickListener{
@Override
public boolean onLongClick(View v) {
Log.e("test","onLongClick");
return true;
}
}
public class TouchListener implements OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.e("test","onTouch,action="+event.getAction());
return false;
}
}
}
public class LinearLayoutTest extends LinearLayout{
public LinearLayoutTest(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.e("test","onTouchEvent,action="+event.getAction());
return super.onTouchEvent(event);
}
}
以上这篇详谈Android中onTouch与onClick事件的关系(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# ontouch
# onclick事件
# 解决vue的touchStart事件及click事件冲突问题
# JS中touchstart事件与click事件冲突的解决方法
# vue中touch和click共存的解决方式
# 浅谈onTouch先执行
# 还是onClick执行(详解)
# 移动端touch拖动和click事件冲突问题解决
# 回调
# 给大家
# 就会
# 是在
# 也会
# 就不
# 才会
# 希望能
# 可以看到
# 这几天
# 只在
# 这篇
# 说明了
# 后会
# 会再
# 必看
# 中来
# 但当
# 先说
# 小编
相关文章:
网站制作报价单模板图片,小松挖机官方网站报价?
广州美橙建站如何快速搭建多端合一网站?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何选择服务器才能高效搭建专属网站?
如何零基础开发自助建站系统?完整教程解析
Android自定义控件实现温度旋转按钮效果
深入理解Android中的xmlns:tools属性
如何高效配置香港服务器实现快速建站?
如何零基础在云服务器搭建WordPress站点?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
平台云上自助建站如何快速打造专业网站?
实现虚拟支付需哪些建站技术支撑?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
PHP正则匹配日期和时间(时间戳转换)的实例代码
太原网站制作公司有哪些,网约车营运证查询官网?
如何选择高效响应式自助建站源码系统?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
已有域名和空间如何快速搭建网站?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何规划企业建站流程的关键步骤?
如何在万网自助建站中设置域名及备案?
如何通过老薛主机一键快速建站?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
模具网站制作流程,如何找模具客户?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
七夕网站制作视频,七夕大促活动怎么报名?
如何在Windows虚拟主机上快速搭建网站?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
黑客如何通过漏洞一步步攻陷网站服务器?
如何通过西部建站助手安装IIS服务器?
如何快速搭建FTP站点实现文件共享?
建站之星后台管理系统如何操作?
淘宝制作网站有哪些,淘宝网官网主页?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
建站为何优先选择香港服务器?
建站之星×万网:智能建站系统+自助建站平台一键生成
深圳网站制作案例,网页的相关名词有哪些?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
如何注册花生壳免费域名并搭建个人网站?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
小程序网站制作需要准备什么资料,如何制作小程序?
*请认真填写需求信息,我们会在24小时内与您取得联系。