以前我用OnLongClickListener
和setOnClickListener
我开发的应用程序。 有时,它是给一些反应问题。 我检查使用Log.d
消息( logcat
在事件的头)。
根据来自#1一些报道,我决定来模拟一切都只是与onTouchListener
事件。
这是我真正的代码。
var otl = OnTouchListener { v, event ->
val actual = SystemClock.elapsedRealtime()
when (event.action) {
MotionEvent.ACTION_DOWN -> {
editX = event.x; editY = event.y
downClick = atual // Down touch time
vPrev = v.id // widget in down touch
Log.d("myMess", "Down $atual milis")
} // down
MotionEvent.ACTION_UP -> {
val tag = v.tag as CalcTag // Se below comments
val localCheck = tag.name.name == "DISPLAY"
var ok =(v.id==vPrev) // same widget?
// "Fake" Double click, I'm using just in one situation
eDoubleClick = (actual - upClick) < doubleClickTime
upClick = atual // up touch time
if (localCheck && ok) // same
ok = abs(event.x - editX) <=20.0 // "Near" position
&& abs(event.x - editX) <=20.0
if (ok) { // same widget and position?
Log.d("myMess", "Up $actual milis: ${event.x} e ${event.y}")
if ((actual - downClick) > longClickTime)
clickL(v) // long click
else
clickS(v) // single click (double click inside!)
} else
Log.d("myMess",
"Wrong Up $actual milis: ${event.x} e ${event.y}")
} // up
// else-> Log.d("myMess", "Event ${event.action}")
} // when
false
} // On Touch
在这里,我为所有的插件的触摸事件。 这只是一个程序。
...
bt.setOnTouchListener(otl) // bt is related to all widgets
变量editX
, editY
(保存位置), downClick
, upClick
(保存倍)电子vPrev
(在向下触摸事件以前控件ID)是全局变量。
关于大约在高于评论val tag = v.tag as CalcTag
, CalcTag
是存储在插件的结构tag
字段,其中名称字段存储一个enum
与小部件的类型。
在这种情况下, DISPLAY
的是唯一的插件型(事实上,只有1插件具有这种类型的),其具有大尺寸和触摸的位置是相关的,因为这是将光标定位。
我已经注意到了?
当光标在窗口小部件DISPLAY
关闭( isCursorVisible=false
),我widgted点击作品以同样的方式,它与我的老工作OnLongClickListener
和setOnClickListener
事件。
而且,像以前一样,当我打开光标( isCursorVisible=false
)有时,特别是当我点击快,控件不触发事件触摸。
总结有以下几点:
一)我的程序进行这个讨论没有问题的其余部分,因为这个问题是所有包含的自我。
B)我和我的小部件关联的唯一事件是触摸事件。
三)一切我写到这里我从总结logcat
触摸事件的头,无需调试,并通过可视化的结果在我的应用程序,这是缺乏响应未检测到触摸时当然。
d)外的唯一事件DOWN
和UP
上触摸发生的是2( MOVE
),这是不相关的我的问题。 他们指的是手指的轻微移动提起它。
E)和关闭光标似乎是我的问题的关键,因为Android系统会自动更新光标位置。
F)我已经停用,相关光标除了自己的光标的所有功能( 禁用的EditText上下文菜单 )
我能做什么?
需要我更换鼠标的光标sofware,要强调光标下的人物? 有什么是我不明白?
我乞求帮助。 我在绝望!