笔记67--ViewPager+ScrollView+ListView/GridView
来源:互联网 发布:淘宝是下订单扣钱 编辑:程序博客网 时间:2024/06/04 19:49
解决方法:
1、重写ScrollView。-------此解决方式有bug
public class MyScrollView extends ScrollView {private GestureDetector mGestureDetector; public MyScrollView(Context context, AttributeSet attrs) { super(context, attrs); mGestureDetector = new GestureDetector(context, new YScrollDetector()); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev); } class YScrollDetector extends SimpleOnGestureListener { @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { /** * 如果我们滚动更接近水平方向,返回false,让子视图来处理它 */ return (Math.abs(distanceY) > Math.abs(distanceX)); } } }
此ScrollView同样适用于ScrollView中ListView等其他View无法滚动。
2、上述解决方式在包含listview+viewpager+ScrollView时,有bug。这种情况,需重写ListView(参考之前的博客)和ScrollView:
public class ScrollViewExtend extends ScrollView { // 滑动距离及坐标 private float xDistance, yDistance, xLast, yLast; public ScrollViewExtend(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: xDistance = yDistance = 0f; xLast = ev.getX(); yLast = ev.getY(); break; case MotionEvent.ACTION_MOVE: final float curX = ev.getX(); final float curY = ev.getY(); xDistance += Math.abs(curX - xLast); yDistance += Math.abs(curY - yLast); xLast = curX; yLast = curY; if(xDistance > yDistance){ return false; } } return super.onInterceptTouchEvent(ev); } }
0 0
- 笔记67--ViewPager+ScrollView+ListView/GridView
- viewpager、listview、gridview、scrollview去除阴影
- 解决ScrollView嵌套ListView,GridView,ViewPager
- ListView WebView Viewpager GridView ScrollView 滑动冲突解决
- GridView ScrollView ViewPager
- ScrollView ListView GridView
- ScrollView中的ListView、GridView
- ScrollView嵌套GridView、ListView
- ScrollView嵌套ListView、GridView
- ScrollView 嵌套 ListView GridView
- pulltorefresh【listview GridView ScrollView】
- Android编程笔记 GridView、ListView和ScrollView的嵌套冲突
- ScrollView嵌套ListView,GridView,ViewPager,以及这些控件自动滚动到底部问题的解决
- ScrollView 和 GridView冲突和ViewPager冲突解决和ListView冲突解决
- ListView,GridView,ScrollView,ViewPager去除滑动到底的蓝色阴影
- ScrollView嵌套ListView,GridView,ViewPager,以及这些控件自动滚动到底部问题的解决
- ScrollView嵌套ListView,GridView,ViewPager,以及这些控件自动滚动到底部问题的解决
- ScrollView嵌套ListView,GridView,ViewPager,以及这些控件自动滚动到底部问题的解决
- 数据库如何降级?
- 取数组/序列之和k最小
- ios数组基本用法和排序
- jQuery 笔记
- JVM原理和优化详解
- 笔记67--ViewPager+ScrollView+ListView/GridView
- 工厂方法
- oracle中:=与=:的区别
- linux最常用的20条命令
- hdu 2795 Billboard 线段树
- fast parse,soft parse,hard parse的区别
- Sockets编程读书笔记【3】——深入理解类【续】
- ubuntuOS 搭建 Android应用层、framework层、驱动层开发环境
- 不用游标也能遍历记录的sql语句实例