其他分享
首页 > 其他分享> > Android:具有X和Y位置的自定义视图onClickEvent

Android:具有X和Y位置的自定义视图onClickEvent

作者:互联网

我有一个自定义视图,我想获得用户点击的X和Y坐标.我发现只能从onTouchEvent获取坐标,如果我有onTouchEvent,onClickEvent将不会触发.不幸的是,当用户拖动屏幕并点击时,onTouchEventfires.

我试图区分这两者,但是当我拖动时我仍然会触发代码:

 public boolean onTouchEvent(MotionEvent event) {
  int action = event.getAction();
  if (action == MotionEvent.ACTION_DOWN) {
                //fires on drag and click

我已经看了this,但正如我上面提到的,我不认为那里的解决方案会有效,因为我无法让onClick和onTouch事件同时工作.也许我在这方面做错了,是否有正常的方法来处理捕获自定义事件的用户输入?我应该能够同时使用onClick和onTouch事件吗?

谢谢,马丁

解决方法:

现在,我不知道onTouchEvent短路onClick,我不知道你是否需要设置android:clickable to true(或setClickable(true)).但是,如果你不能干净利落地工作,你可以在onTouchEvent中使用布尔值来模仿点击检测,如果所有其他方法都失败的话.在ACTION_DOWN中,将其设置为true(isClicking或类似的东西),在ACTION_MOVE中将其设置为false(因为用户拖动因此不点击),然后在ACTION_UP中可以测试它.如果这是真的,这意味着用户已按下但未拖动.这很hacky,但如果你不能onClick工作它基本上是一样的.

标签:android,user-input,view
来源: https://codeday.me/bug/20191002/1844597.html