我有ViewPager,我想使用onTouch上下移动它
@Override
public boolean onTouch(View v, MotionEvent event) {
final int X = (int) event.getX();
final int Y = (int) event.getY();
if (flagMeal)
{
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
xOffset = X;
yOffset = Y;
break;
case MotionEvent.ACTION_MOVE:
float x= xOffset - event.getX() ;
float y = yOffset - event.getY() ;
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) mViewPager.getLayoutParams();
p.topMargin = (int) -y ;
p.bottomMargin = (int) y ;
mViewPager.setLayoutParams(p);
// mViewPager.invalidate();
break;
default:
break;
}
}
return true;
}
它正在工作,但是视图在正确位置绘制一次,而在旧位置绘制一次就像振动运动一样 我错过了什么吗?
答案 0 :(得分:0)
其实我发现了这个问题
它来自event.getY()
它应该是event.getRawY()
但我不知道原因
有没有解释?