나는 메서드를 재정의하고 이동 이벤트에서 이벤트 액션 (x, y) 좌표를 기반으로 내 View
의 위치를 변경/변환하므로 드래그 할 수있는 View
이 있습니다. 하나! 예를 들어 내 View
을 드래그하면 이벤트 동작의 x 좌표가 꾸준히 증가하지 않고있는 것을 볼 수 있습니다 (즉 ... 15, 16, 17, 18 ...) 대신 인터리브됩니다 (즉 ... 15, 23, 16, 24, 17, 25 ...) 따라서 내 View
은 갑자기 움직입니다. (왼쪽, 위, 아래로 드래그하는 것과 마찬가지로)이동 액션 jerking
누구나 이것이 어째서 그런지, 어떻게 피할 수 있는지 알고 있습니까?!
여기 ... 내 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