Button
按下并释放a 时如何收听?
问问题
37138 次
3 回答
88
您可以使用onTouchListener
:
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// PRESSED
return true; // if you want to handle the touch event
case MotionEvent.ACTION_UP:
// RELEASED
return true; // if you want to handle the touch event
}
return false;
}
});
于 2012-08-02T14:07:15.650 回答
10
提琴手给出的答案对于通用视图是正确的。
对于 a Button
,您应该始终false
从触摸处理程序返回:
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// PRESSED
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
// RELEASED
break;
}
return false;
}
});
如果您返回true
,您将绕过按钮的常规触摸处理。这意味着您将失去按下按钮和触摸波纹的视觉效果。此外,Button#isPressed()
将false
在实际按下按钮时返回。
按钮的常规触摸处理将确保您即使在返回时也能获得后续事件false
。
于 2018-01-24T15:10:23.203 回答
4
于 2012-08-02T14:07:22.610 回答