zoukankan      html  css  js  c++  java
  • 解决ScrollView嵌套ViewPager出现的滑动冲突问题

    非常easy,仅仅须要重写ScrollView就能够了



    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.GestureDetector;
    import android.view.GestureDetector.SimpleOnGestureListener;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.ScrollView;
     
    /**重写ScrollView
     * 解决ScrollView嵌套ViewPager出现的滑动冲突问题
     * @date 2014-7-17 上午11:04:22
     * @author ZhangYi
     *
     */
    public class MyScrollView extends ScrollView {
        private boolean canScroll;
     
        private GestureDetector mGestureDetector;
        View.OnTouchListener mGestureListener;
     
        public MyScrollView(Context context, AttributeSet attrs) {
            super(context, attrs);
            mGestureDetector = new GestureDetector(new YScrollDetector());
            canScroll = true;
        }
        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            if(ev.getAction() == MotionEvent.ACTION_UP)
                canScroll = true;
            return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev);
        }
     
        class YScrollDetector extends SimpleOnGestureListener {
            @Override
            public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                if(canScroll)
                    if (Math.abs(distanceY) >= Math.abs(distanceX))
                        canScroll = true;
                    else
                        canScroll = false;
                return canScroll;
            }
        }
    }


    Xml调用自己定义ScrollView方法


    把原来的ScrollView组件名字换成   包名.MyScrollView 就能够了


    <com.zy.myview.ScrollView  
            android:layout_width="fill_parent"
    		android:layout_height="wrap_content" 
    		android:scrollbars="none"
            >  
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="top"
                android:orientation="vertical" >
    ........


    遇到同问题得试试吧

  • 相关阅读:
    多重继承
    单继承
    访问限制方法
    猜字游戏
    getSet方法
    访问限制
    __str__函数
    析构函数
    构造函数二
    选择排序
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/8618984.html
Copyright © 2011-2022 走看看