【发布时间】:2014-11-17 16:09:18
【问题描述】:
我有一个布局,我在其中放置一个视图并仅在水平方向上移动。我设法做到了,但问题是拖动不是很顺畅,它摇晃很多,有时会出现错误的坐标。
除了我经常使用该视图时,它会从布局中消失。
这里是 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 上的一个条件。
我不明白为什么视图在触摸移动时会在布局上晃动,有时会消失。
【问题讨论】:
-
不知道现在是否有用,但还是放弃了。你可能想看到这个问题stackoverflow.com/questions/16273249/…
标签: android android-layout view touch ontouchlistener