Android ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题解决方案
来源:互联网 发布:python enumerate 编辑:程序博客网 时间:2024/05/21 12:49
转至:http://www.lbhao.com/forum.php?mod=viewthread&tid=2191
完美解决ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题
完美解决方案如下,转载请注明出处:蓝冰论坛
解决方案如下:
第一步:建立一个类叫:VerticalScrollView.java,内容如下:
package com.lanbing.shop;
import android.content.Context;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.widget.ScrollView;
public class VerticalScrollView extends ScrollView {
private GestureDetector mGestureDetector;
public VerticalScrollView(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));
}
}
}
第二步:添加类之后,记得在权限文件里添加:
<activity android:name="com.lanbing.VerticalScrollView"></activity>
第三步:
在xml文件中替换ScrollView为com.weiyg.cn.shop.VerticalScrollView即可
解释就是:
触控在接近水平滚动时ScrollView不处理事件而交由其子View(即这里的ViewPager)处理即可,重写ScrollView的onInterceptTouchEvent函数
补充:
假如pulltorefresh中 在diapathtouchevent中写的事件处理,则直接在的action move中判断,横向滑动位移是否大于纵向,要是大于纵向,则将事件交于子View处理
- Android ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题解决方案
- 完美解决ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题
- android scrollview嵌套viewpager滑动冲突
- scrollview嵌套viewpager 滑动冲突
- ScrollView嵌套滑动冲突问题解决
- VerticalViewPager中嵌套ScrollView,导致ViewPager滑动失效问题解决
- Android中Viewpager,ScrollView嵌套ViewPager滑动冲突解决
- ViewPager,ScrollView 嵌套ViewPager滑动冲突解决
- ViewPager,ScrollView 嵌套ViewPager滑动冲突解决
- ViewPager,ScrollView 嵌套ViewPager滑动冲突解决
- ViewPager,ScrollView 嵌套ViewPager滑动冲突解决
- ViewPager,ScrollView 嵌套ViewPager滑动冲突解决
- ViewPager,ScrollView 嵌套ViewPager滑动冲突解决
- ViewPager,ScrollView 嵌套ViewPager滑动冲突解决
- ViewPager,ScrollView 嵌套ViewPager滑动冲突解决
- ViewPager,ScrollView 嵌套ViewPager滑动冲突解决
- ViewPager,ScrollView嵌套ViewPager滑动冲突解决
- Android ViewPager、ScrollView或ListView嵌套WebView滑动冲突
- VS2013常用快捷键
- ios-提升之【6】-数据持久化
- Codeforces Round #345 (Div. 2) B. Beautiful Paintings【贪心】
- 第3周-项目3(3)-输出星号图
- 九度oj题目1123:采药
- Android ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题解决方案
- mac自带的sed和linux表现不一致, 需要安装gnu-sed
- shell sed替换、删除文件中的某个字符串
- 【数据库】MySQL数据库简介及安装
- JavaWeb基础——细节知识汇总
- 一些重要的算法The Most Important Algorithms
- 计算机图形学作业——DDA算法实现
- [LeetCode]110. Balanced Binary Tree
- 2叉树