Событие onTouch и действие перемещают андроид

У меня есть 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;
    }

Это работает, но вид рисуется один раз в правильном положении, а в старом положении он выглядит как вибрационное движение, я что-то пропустил?


person Khaled Hayek    schedule 29.01.2014    source источник


Ответы (1)


На самом деле я нашел проблему Это было от event.getY() Должно быть event.getRawY() Но я не знаю причину Любое объяснение?

person Khaled Hayek    schedule 29.01.2014