我有一个布局,我在其上放置一个视图并仅在水平方向上移动。我设法这样做,但问题是拖动不是很顺利,它摇晃很多,有时最终会出现错误的坐标。
除此之外,当我对该视图进行大量播放时,它会从布局中消失。
这是mu 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视图事件处理程序,
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;
}
});
我想在ACTION_Up上处理一个条件。
我无法理解为什么视图在触摸移动时抖动布局,有时会消失。