1
我有一個View
,我想爲可拖動所以我已經覆蓋了onTouchEvent(MotionEvent event)
方法,對移動事件,我重新定位/翻譯我View
基於事件行動的(X,Y)座標。然而!在拖我View
正確的 - 例如 - 我看到了事件操作的x座標並不穩步增加(即... 15,16,17,18 ...),而是交錯(即... 15,23,16,24,17,25 ...),因此我的View
以一種急躁的方式移動。 (同樣,對於拖動左,上,下等)Move操作催人淚下
任何人都知道這可能是爲什麼,我該如何避免呢?
這裏是我的onTouchEvent(..)
方法...
@Override
public boolean onTouchEvent(MotionEvent event)
{
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
// make note of the down action's (x, y) coordinate
action_down_x = event.getX();
action_down_y = event.getY();
return true;
case MotionEvent.ACTION_MOVE:
// work out displacement
dX = event.getX() - action_down_x;
dY = event.getY() - action_down_y;
// code here to move the view
return true;
case MotionEvent.ACTION_UP:
return true;
}
return super.onTouchEvent(event);
}
問題解決了。謝謝。唯一不利的一面是我現在必須確定從父級觸摸事件的座標中按下哪個子視圖。 –
由於每個視圖應該有存儲的界限,它應該是一個簡單的循環,其中觸摸事件打孩子視圖的邊界。不難做:)提示:'Rect.contains(x,y)' – WarrenFaith