解决在viewpager中使用scrollerView导致的焦点的问题

horizontalScrollView.setOnTouchListener(new View.OnTouchListener() {
float rawX;
int mTouchSlop =  ViewConfiguration.get(getActivity()).getScaledTouchSlop();

@Override
public boolean onTouch(View v, MotionEvent event) {
    switch (event.getActionMasked()) {
        case MotionEvent.ACTION_DOWN:
            v.getParent().requestDisallowInterceptTouchEvent(true);
            rawX = event.getRawX();
            break;
        case MotionEvent.ACTION_CANCEL:
        case MotionEvent.ACTION_UP:
            v.getParent().requestDisallowInterceptTouchEvent(false);
            rawX = 0f;
            break;
        case MotionEvent.ACTION_MOVE:
            if (Math.abs(rawX - event.getRawX()) > mTouchSlop)
                v.getParent().requestDisallowInterceptTouchEvent(true);
            break;
    }
    return false;
}

以上的是在viewpager中使用horizontalScrollView 导致焦点发生冲突的解决方案,同时也是我们项目中仿照淘宝客户端时实现竖直方向的ViewPager中使用ScrollView时导致焦点发生冲突的解决方案。

posted @ 2015-02-27 14:22  kingfly13  阅读(946)  评论(0编辑  收藏  举报