我有一个ViewPager内的水平滚动视图。为了防止当达到了滚动结束时,我使用这个类按照提示在SO被滚动的ViewPager:OnClickListener在自定义滚动视图内的视图
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
似乎消耗任何点击该View和里面的一切。当我将Views
放入该ScrollView
时,它们的OnClickListener
将不会被调用。
当我让onInterceptTouchEvent
返回false时,调用OnClickListener
s,但ScrollView
不能滚动。
如何将可点击视图放入ScrollView
?
编辑:实施Rotem的答案后,onClickListener
的作品,但它不仅触发点击事件,而且在其他人,如一扔。这怎么能被阻止?
如果你只叫超与相同参数,没有必要重写方法 – Rotem
确保你读了[Javadoc中(http://developer.android.com/ reference/android/view/ViewGroup.html#onInterceptTouchEvent%28android.view.MotionEvent%29),它描述了你的问题。正如Rotem所说,你不需要执行这个。 –