【发布时间】:2019-07-19 05:08:10
【问题描述】:
有一个gButton按钮,有一个onTouch监听器:
gButton.setOnTouchListener (new View.OnTouchListener () {
public boolean onTouch (View v, MotionEvent event) {
if (event.getAction () == MotionEvent.ACTION_DOWN) {
...
} else if (event.getAction () == MotionEvent.ACTION_UP) {
...
}
return false;
}
});
用ACTION_DOWN和ACTION_UP(按下按钮/释放)做了一些事情,但是按下事件只有在按钮被触摸时才会发生,如果按下按钮并且你拿开手指,什么都不会发生(没有手指敲击)
我尝试在ACTION_DOWN 之后添加其他“else if”条件,例如ACTION_OUTSIDE(我从页面中取出所有内容:https://developer.android.com/reference/android/view/MotionEvent.html),但什么也没发生。是的,我使用了If,而不是Switch
我需要确保当我触摸按钮时(如果手指完全位于按钮区域,即使第一次触摸是在空白区域的某处并且手指移动到按钮),一些动作是执行(例如,带有文本"On " 的Toast 方法),当您从按钮区域释放手指或从按钮区域移动手指时,执行了其他操作(Toast 的值为Off)
我尝试通过在我的代码中更正类似问题的答案之一来做到这一点:Cancel button press if user moves finger off button,但是,显示错误prntscr.com/oghnm2,我不知道在哪里以及如何获得 L, R、T、B,getTop()除外;
【问题讨论】:
标签: java android action android-button ontouchlistener