虛擬鍵盤按下後藍色圖示無法消失
来源:互联网 发布:欧洲审美知乎 编辑:程序博客网 时间:2024/04/29 23:27
这个问题我大致解释一下,PointerTracker.java中的setPressedKeyGraphics是控制按下键时变蓝色的函数,setReleasedKeyGraphics是控制从蓝色变回黑色的函数,分别在onDownEventInternal和onUpEventInternal中调用。
当快速用鼠标点击虚拟键盘时,会发生变成蓝色没有变回来的情况,就是这两个函数没有匹配地调用导致的。
为什么没有匹配呢?通过log分析来看,setPressedKeyGraphics的key值和setReleasedKeyGraphics的key值没有对应上。而出现这种情况是因为:
在快速用鼠标点击虚拟键盘时,
实际上会有先down的事件,然后move的事件,再up这样的事件发生。正常情况是接收到down事件就去调setPressedKeyGraphics使之变蓝,接收move的事件时处理move事件,会掉setReleasedKeyGraphics,因为你move走了,这个键也不应该显示蓝色了。然后移到另一个键时,你up了鼠标,所以会处理up事件,此时会判断是否到新的键了,如果是新的键,就会setReleasedKeyGraphics新的键。但是现在的情况是由于太快速地点击,中间的move事件没有处理,没有调用onMoveEven函数,所以旧的key没有处理到,直接去处理up事件时新的键了。
所以就会出现快速点击时,虚拟键盘按下后蓝色图示无法消失的现象。解决的办法可以按照如下:
在PointerTracker.java中的onUpEventInternal函数里面,在setReleasedKeyGraphics(keyIndex);前加一句:
setReleasedKeyGraphics(getKeyIndexOn(mKeyX, mKeyY));
- 虛擬鍵盤按下後藍色圖示無法消失
- 消失几天
- 人间消失
- 消失这两年。。。
- 转瞬,消失
- 转瞬,消失
- 消失目录
- 消失一周
- hosts消失
- UIAlertView的自动消失,手动消失和自定制消失
- UIAlertView的自动消失,手动消失和自定制消失
- UIAlertView的自动消失,手动消失和自定制消失
- UIAlertView的自动消失,手动消失和自定制消失
- UIAlertView的自动消失,手动消失和自定制消失
- UIAlertView的自动消失、手动消失、自定义消失
- 实现放大,下坠消失,扩散消失效果
- Visual Basic不可能消失
- 消失的一年
- java.lang.IllegalStateException异常解决办法
- ubuntu安装git server经验总结
- UISlider
- OpenSSL: 消息摘要算法
- 《设计心理学》
- 虛擬鍵盤按下後藍色圖示無法消失
- casServer单点登录返回更多用户信息正确配置
- 内存对齐
- c语言的避雷针之指针习题精选
- C++内存泄露 与 野指针总结
- html5游戏开发--"动静"结合用地图块拼成大地图 & 初探lufyl
- ios debug release nslog
- Oracle 11g R2 for Windows安装配置
- PowerDesigner 反向工程