0
나는 그 위에보기를 걸고 가로 방향으로 만 움직이는 레이아웃을 가지고 있습니다. 나는 그럭저럭 할 수 있었다. 그러나 문제는 끌기가 매우 매끄럽지 않다라는 것이다, 그것은 흔들리고, 때때로 잘못된 좌표에서 끝난다.onTouchEvent에서보기가 사라지고 위로 올라갑니다.
내가 그보기로 많이 놀면 그 외에도 레이아웃에서 사라집니다.
여기에 무 XML 파일
<FrameLayout
android:layout_width="match_parent"
android:layout_height="300dip"
android:id="@+id/graph"
android:orientation="vertical"
android:background="#ffffff"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<View
android:id="@+id/drag_line"
android:layout_width="50dp"
android:visibility="visible"
android:background="@drawable/line"
android:layout_gravity="center_horizontal|top"
android:layout_height="170dp"
android:src="@drawable/line" />
</FrameLayout>
여기 내가보기에는 onTouch 이벤트 핸들러는, 내가 ACTION_Up에 조건을 처리하는
line.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
final int action = motionEvent.getAction();
final int x = (int) motionEvent.getRawX();
final int y = (int) motionEvent.getRawY();
switch (action & MotionEvent.ACTION_MASK) {
`enter code here` case MotionEvent.ACTION_MOVE:{
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
int currentX = (int) motionEvent.getX();
params.rightMargin = (params.rightMargin - (currentX));
params.leftMargin = (params.leftMargin + (currentX));
line.setLayoutParams(params);
line.invalidate();
break;
}
case MotionEvent.ACTION_UP: {
dynamicUpdate(line.getX());
touchFlag = true;
}
}
return true;
}
});
입니다.
왜 화면이 터치 동작에서 레이아웃 위에 떨리는 지 이해하지 못하고 때로는 사라지는 경우가 있습니다.
이제는 도움이 될지 모르겠지만 어쨌든 그것을 놓으십시오. 이 질문은 http://stackoverflow.com/questions/16273249/android-ontouchevent-coordinates-skip-around에서 볼 수 있습니다. – xip