Я havin горизонтальный ScrollView внутри ViewPager. Для того, чтобы предотвратить ViewPager прокручиваться, когда конец ScrollView достигается я использую этот класс в соответствии с намеком на SO:OnClickListener on Views внутри пользовательского ScrollView
public class CustomScrollView extends HorizontalScrollView {
public CustomScrollView(Context p_context, AttributeSet p_attrs) {
super(p_context, p_attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent p_event) {
return true;
}
@Override
public boolean onTouchEvent(MotionEvent p_event) {
if (p_event.getAction() == MotionEvent.ACTION_MOVE
&& getParent() != null) {
getParent().requestDisallowInterceptTouchEvent(true);
}
return super.onTouchEvent(p_event);
}
}
onInterCeptTouchEvent
кажется потреблять любой щелчок этой точке зрения, и все внутри него. Когда я положил Views
в это ScrollView
, их OnClickListener
s не будет вызываться.
Когда я дам onInterceptTouchEvent
return false, вызываются OnClickListener
s, но нельзя прокручивать ScrollView
.
Как я могу разместить интерактивные представления внутри этого ScrollView
?
РЕДАКТИРОВАТЬ: После выполнения ответа Ротема работает onClickListener
, но он не только запускает события кликов, но и других, например, бросает. Как это можно предотвратить?
если вы только вызвать супер с теми же аргументами, что нет никакой необходимости переопределять метод – Rotem
Убедитесь, что вы читали [Javadoc] (http://developer.android.com/ reference/android/view/ViewGroup.html # onInterceptTouchEvent% 28android.view.MotionEvent% 29) для ваших методов, которые описывают вашу проблему. Как говорит Ротем, вам не нужно это реализовывать. –