2013-05-30 2 views
0

У меня есть ScrollViews как страницы для ViewPager. Я бы полностью отключил сенсорные события для этого ViewPager. Когда я переопределяю onTouchEvent на моем классе ViewPager, мне удается предотвратить горизонтальную прокрутку, но не прокрутку дочерних элементов ScrollViews.Отключить события касания для ScrollView внутри ViewPager в Android

Как отключить события касания целиком для ViewPager и всех ScrollViews внутри него?

Это только доказательство концепции для меня. Следующий шаг - предотвратить прокрутку только для некоторой части этого ViewPager.

ответ

1

Перезапишите onInterceptTouchEvent вашего Scrollview либо потреблять или игнорировать событие:.

«возвращающий украсть событие движения от детей и они посланы к этому ViewGroup через onTouchEvent() Текущая цель получит ACTION_CANCEL, и никаких дальнейших сообщений здесь не будет ».

public class InterceptScrollView extends ScrollView { 

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

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    return false; 
} 

} 
+0

Почему я не могу перехватить событие касания на родительском классе (ViewPager в моем случае)? – mgamer

+2

Я мог ошибаться в этом, но, читая документацию, мне кажется, что сначала ребенок принимает жесты, а затем этот ребенок решает либо передать, либо не передать событие родительскому. – ePeace

+0

http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent) – ePeace

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