2016-11-07 3 views
0

Новое действие открывается при нажатии на карту (см. Изображение), но если вы проведите по горизонтали (по ошибке или сознательно), то произойдет то же самое, что должно быть отключено. Как это сделать?Как отключить действие при горизонтальном прокрутке в viewPager?

Я использую гнездо viewPager. Первый - горизонтальный viewPager (в этом горизонтальном прокрутке отключен), как вы можете видеть, и в первом фрагменте (с именем Digest) я использовал вертикальный viewPager, и он работает нормально. Проблема в том, что если я попытаюсь прокручивать по горизонтали, откроется следующая Activity (которая должна открываться по щелчку карты). Я хочу, чтобы ничего не произошло, если я прокручиваю горизонтально по карте.

enter image description here

ответ

0

You're не быть ясно, в вашем вопросе настолько плохо, что вы хотите, чтобы заблокировать ViewPager салфетки полностью.

Вам нужно только расширить вид виджета viewpager следующим образом.

public class NonSwipeableViewPager extends ViewPager { 

    private boolean isPagingEnabled = true; 

    public NonSwipeableViewPager(Context context) { 
     super(context); 
    } 

    public NonSwipeableViewPager(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     return this.isPagingEnabled && super.onTouchEvent(event); 
    } 

    @Override 
    public boolean onInterceptTouchEvent(MotionEvent event) { 
    return this.isPagingEnabled && super.onInterceptTouchEvent(event); 
    } 

    public void setPagingEnabled(boolean b) { 
     this.isPagingEnabled = b; 
    } 

}

Затем использовать эту новую версию для горизонтальной ViewPager и setPagingEnabled (ложь) Programatically. Будьте осторожны, вы все еще можете взаимодействовать с viewpager через вкладки, это только блокирует событие салфетки.

+0

Подумайте, что новый вопрос открывается по горизонтали и диагонали на карте, но он только хочет, чтобы он открывался при нажатии на карту ... Другими словами, его страница имеет вертикальную прокрутку, но поскольку карта большая, а большой палец обычно работает по диагонали, он открывает страницу карты (новая активность) вместо прокрутки вверх. –

+0

Что-то вроде этого, но у него есть вертикальная прокрутка на пейджере просмотра ... http://queforum.com/android-applications/167786-android-how-make-viewpager-swipe-diagonal-swipes.html –

Смежные вопросы