zoukankan      html  css  js  c++  java
  • Android ScrollView与ViewPager滑动冲突

      前段时间做项目碰到在ScrollView里添加ViewPager,但是发现ViewPager的左右滑动和ScrollView的滑动冲突了,解决这个问题的方法是重写ScrollView。

    代码:

     1 public class CustomScrollView extends ScrollView {
     2 
     3     private GestureDetector mGestureDetector;
     4     View.OnTouchListener mGestureListener;
     5 
     6     public CustomScrollView(Context context, AttributeSet attrs) {
     7         super(context, attrs);
     8         mGestureDetector = new GestureDetector(context, new YScrollDetector());
     9     }
    10 
    11     public CustomScrollView(Context context, AttributeSet attrs, int defStyle) {
    12         super(context, attrs, defStyle);
    13         mGestureDetector = new GestureDetector(context, new YScrollDetector());
    14     }
    15 
    16     public CustomScrollView(Context context) {
    17         super(context);
    18         mGestureDetector = new GestureDetector(context, new YScrollDetector());
    19     }
    20 
    21     @Override
    22     public boolean onInterceptTouchEvent(MotionEvent ev) {
    23         return super.onInterceptTouchEvent(ev)
    24                 && mGestureDetector.onTouchEvent(ev);
    25     }
    26 
    27     // Return false if we're scrolling in the x direction
    28     class YScrollDetector extends SimpleOnGestureListener {
    29         @Override
    30         public boolean onScroll(MotionEvent e1, MotionEvent e2,
    31                 float distanceX, float distanceY) {
    32             if (Math.abs(distanceY) > Math.abs(distanceX)) {
    33                 return true;
    34             }
    35             return false;
    36         }
    37     }
    38 
    39 }
  • 相关阅读:
    什么是P问题、NP问题和NPC问题
    Ubuntu 14.04 亮度BUG解决方案
    彻底理解Java中this指针
    Eclipse快捷键大全
    JAVA文件读写方法和性能比较总结
    Java下static关键字用法详解
    LeetCode: Gray Code
    LeetCode: 4sum
    LeetCode:3Sum Closest
    LeetCode:Remove Element
  • 原文地址:https://www.cnblogs.com/phj981805903/p/3240803.html
Copyright © 2011-2022 走看看