Intereting Posts
Ошибка: демон Gradle build неожиданно исчез (возможно, он был убит или может быть разбит) Могу ли я сделать снимок экрана на домашнем экране программно, не укореня свое устройство Android? Twitter Bootstrap не работает в Android WebView Com.google.android.gms.plus.PlusOneButton не удалось создать экземпляр Ошибки из памяти возникают с большим размером кучи, но с небольшим выделенным размером. Зачем? Как использовать Android GradientDrawable Как показать всплывающее окно в Android? Как я могу убедиться, что в Android не вызывается неподдерживаемый (более высокий уровень) API? Как сделать Android GridLayout совместимым с более старой версией? «Соединение с adb было прервано». Попробовали ВСЕ Как установить вид TypeFace в PagerTabStrip Как использовать UsageStatsManager? Программный снимок экрана веб-просмотра со вспышками Android – строка состояния предотвращает полный экран Я пытаюсь запустить приложение Android в adt, используя телефонную защелку

Только одна сторона ViewPager

У меня есть приложение ViewPager в моем приложении, и я хотел бы отключить / разрешить прокрутку вправо в любое время. Каждый вид в viewpager содержит ListView. Как я могу это сделать? Я пытаюсь сделать это следующим образом:

private int oldX; private int deltaX = 0; @Override public boolean onTouch(View view, MotionEvent motionEvent) { if (motionEvent.getAction() == MotionEvent.ACTION_MOVE || motionEvent.getAction() == MotionEvent.ACTION_DOWN) { int newX = (int) motionEvent.getX(); deltaX = oldX - newX; oldX = newX; } if (motionEvent.getAction() == MotionEvent.ACTION_UP) { oldX = 0; } return deltaX < 0; } 

Но взгляд по-прежнему идет к правой стороне немного. Кто-то решал ту же проблему?

Мне удалось добиться односторонней прокрутки в ViewPager, взяв его код в мое приложение и добавив следующие

 private boolean performDrag(float x) { boolean needsInvalidate = false; final float deltaX = mLastMotionX - x; mLastMotionX = x; // MY CODE STARTS if (deltaX < 0) { return false; } // MY CODE ENDS float oldScrollX = getScrollX(); ... 

Кажется, он работает нормально. Единственное, что вам может понадобиться – взять код адаптера или предоставить свой собственный адаптер, потому что некоторые методы, используемые ViewPager в его коде, не являются публичными из PagerAdapter .