【发布时间】:2015-09-02 16:14:16
【问题描述】:
我需要在 ViewPager 中放置 HorizontalScrollView。 ViewPager 的每个孩子都是 ScrollView,里面有 HorizontalScrollView。 我缩放 HorizontalScrollView 的孩子。之后,我需要允许用户滚动 HorizontalScrollView 但不滚动到 ViewPager 的下一页。为了处理操作,我创建了自定义 ViewPager:
public class MyViewPager extends ViewPager {
private static final String TAG = MyViewPager.class.getName();
public MyViewPager(Context context) {
super(context);
}
public MyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
try {
final int action = MotionEventCompat.getActionMasked(ev);
// Always handle the case of the touch gesture being complete.
if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) {
return super.onInterceptTouchEvent(ev); // Do not intercept touch event, let the child handle it
}
switch (action) {
case MotionEvent.ACTION_MOVE: {
ViewGroup view=(ViewGroup)(getChildAt(getCurrentItem()));
if (view.getChildCount()>0) {
view = (ViewGroup) view.getChildAt(0);
if (view instanceof CustomHorizontalScroll) {
CustomHorizontalScroll scroll = (CustomHorizontalScroll) view;
if (((CustomHorizontalScroll) view).isZoom()) {
return false;
} else {
return true;
}
}
}
break;
}
default: return super.onInterceptTouchEvent(ev);
}
}catch (Exception e){
return super.onInterceptTouchEvent(ev);
}
return super.onInterceptTouchEvent(ev);
}
}
问题在于 onTouchAction。在我的水平视图中有 onClick 事件。如果我使用自定义 ViewPager,那么有时 onClick 不起作用。我需要做什么?在这种情况下如何使用 ActionDown?
【问题讨论】:
标签: android android-viewpager horizontal-scrolling horizontalscrollview