我有一个自定义视图,它继承自GestureOverlayView
,我想记录传递给此视图的所有MotionEvent
。
效果很好,但是当我的动作开始于交互式布局小部件(MotionEvent
,Button
....)时,我无法获得TextEdit
有没有办法绕过这种行为?
答案 0 :(得分:0)
既然你没有提到你的任何剪切代码,我会提出2种不同的解决方案,希望对你有帮助
一种方法是将小部件传递给View
方法并调用OnTouchListener
button.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
break;
}
case MotionEvent.ACTION_UP: {
break;
}
case MotionEvent.ACTION_CANCEL:{
break;
}
}
return false;
}
});
另一种方法是使用自定义构造函数手动创建MotionEvent 像这样:
static public CustomMotionEvent obtain(long downTime, long eventTime, int action,
float x, float y, int State) {
}
根据API
创建一个新的MotionEvent,填充基本动作的子集 值。这里没有指定的是:设备ID(总是0),压力 和大小(总是1),x和y精度(总是1)和edgeFlags (总是0)。