【发布时间】:2014-01-15 15:55:01
【问题描述】:
我在 ViewPager 中有一个水平 ScrollView。为了防止在到达 ScrollView 末尾时滚动 ViewPager,我按照 SO 上的提示使用此类:
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 时,他们的OnClickListeners 将不会被调用。
当我让onInterceptTouchEvent 返回false 时,OnClickListeners 被调用,但ScrollView 不能滚动。
如何在ScrollView 中放置可点击的视图?
编辑:在实现 Rotem 的答案后,onClickListener 有效,但它不仅会触发点击事件,还会触发其他事件,例如投掷。如何预防?
【问题讨论】:
标签: android