dialog中处理鼠标事件
来源:互联网 发布:4g网络突然变成2g了 编辑:程序博客网 时间:2024/06/06 09:21
bug背景:在dialog中,有listview,滚动鼠标滚轮,listview上下滚动,监听鼠标事件不回调;只有在listview的上下边界时才回调;窗口为dialog,15秒自动消失,有鼠标动作时会重新计时,异常--->>>延时15秒后再次点击视图中的button时,log显示空指针,显然布局被销毁的瞬间点击button导致。
研究了几天,结论是焦点抢占了;android提供了监听鼠标事件的回调函数:
研究了几天,结论是焦点抢占了;android提供了监听鼠标事件的回调函数:
onGenericMotionEvent
大致意思是说:只有当一个普通的移动事件没有被dialog中的任何view处理、消费掉时 才会回调这个方法;
dispatchGenericMotionEvent
当处理一般的鼠标动作事件时就会回调此方法。
在他们被分派到窗体之前,我们可以重写这个回调方法来拦截所有的鼠标事件;一定要调用这个鼠标移动事件的实现才能确保事件被正常处理。
另外,我们再进入到上图中的方法体重的一个方法:superDispatchGenericMotionEvent
被自定义视图所回调,如dialog,将鼠标基本动作事件进一步传递到视图层。应用开发人员不需要调用这个方法。。 难道我不是应用开发者了?
现在我的视图就是处在dialog环境中,而且其中又有listview控件,所以不能用onGenericMotionEvent,必须要先拦截鼠标事件而后进行操作,即调用dispatchGenericMotionEvent。
类比下:touch事件 与genericMotionEvent事件的分发路径
此图是之前画过的,为了分析view视图中焦点传递路径;现在将鼠标事件一同加以类比,如出一辙。
0 0
- dialog中处理鼠标事件
- js中处理鼠标单击事件 onclick
- C#中如何处理鼠标事件
- HTML中鼠标滚轮事件onmousewheel处理
- HTML中鼠标滚轮事件onmousewheel处理
- java中事件处理中鼠标处理案例讲解
- 处理鼠标移出事件
- 处理鼠标移出事件
- DataGrid鼠标事件处理
- DataGrid鼠标事件处理
- DataGrid鼠标事件处理
- DataGrid鼠标事件处理
- DataGrid鼠标事件处理
- 处理鼠标移出事件
- 鼠标事件的处理
- 鼠标事件处理
- Glut处理鼠标事件
- C#处理鼠标事件
- 快来DIY自己的固件吧——N系列固件DIY详细教程(7.27更新RK2918)
- Android应用开发:ImageLoader小陷阱——同一个URI
- Send-Mail: Warning: Inet_protocols: IPv6 Supp
- ActionBar样式修改
- jquery学习笔记之一二-------入门及基础核心
- dialog中处理鼠标事件
- 图像检索之纹理检索~~大数据检索
- PyQt4 - (2) 第一印象
- UVA - 101 The Blocks Problem
- 结构型设计模式---享元模式(Flyweight)
- linux下编译安装glibc
- Unix时间戳(Unix timestamp)转换工具
- UITextFeild只发生变化触发
- Nginx 的 Location 配置指令块