android 可滑动组件互相嵌套时滑动冲突解决方案总结
来源:互联网 发布:软件工资 编辑:程序博客网 时间:2024/05/23 23:15
参考文章:
http://www.jianshu.com/p/87a41b8c0dd0
http://www.jianshu.com/p/8bc0765dffc9
强烈推荐使用以上两篇文章的方法。
以下是我个人在项目中的解决方案,比较LOW,现在不建议使用,但可作为一种知识参考。
本人自己以前都是重写ScrollView,ListView,在onTouch方法中判断触点落在谁身上,然后把时间传给谁。具体代码,以ScrollView嵌套ViewPager为例:
public class MaintainArchScrollView extends ScrollView {public MaintainArchScrollView(Context context) {super(context);}public MaintainArchScrollView(Context context, AttributeSet attrs) {super(context, attrs);}public MaintainArchScrollView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {// 判断触摸事件是否落在XListView上,如果是则不让// ScrollView滑动,以免影响XListView的滑动xLV = (XListView) findViewById(R.id.maintain_archives_lv);if (isTouchOnLv(ev)&&xLV.isCanPullDownOnTop()&&xLV.isCanPullUpOnbottom()) {return false;}//return super.onInterceptTouchEvent(ev);}private boolean isTouchOnWheelMenu(MotionEvent ev) {// 判断触摸事件是否落在WheelMenu上,如果是则不让// ScrollView滑动,以免影响WheelMenu的手动滑动PieChartView vp = (PieChartView) findViewById(R.id.maintain_archives_wheelMenu);if (vp == null)return false;int w = vp.getHeight();int[] xy = new int[2];float rawY = ev.getRawY();vp.getLocationInWindow(xy);return rawY >= xy[1] && rawY <= (xy[1]) + w;}private XListView xLV;private boolean isTouchOnLv(MotionEvent ev) {if (xLV == null)return false;int w = xLV.getHeight();int[] xy = new int[2];float rawY = ev.getRawY();xLV.getLocationInWindow(xy);return rawY >= xy[1] && rawY <= (xy[1]) + w;}
0 0
- android 可滑动组件互相嵌套时滑动冲突解决方案总结
- Android-滑动冲突解决方案
- Android滑动冲突解决方案
- android滑动冲突解决方案
- Android滑动冲突解决方案
- Android 开发中scrollview嵌套webview滑动冲突的解决方案
- Android scrollview嵌套webview滑动冲突的解决方案
- Android 开发中scrollview嵌套webview滑动冲突的解决方案
- ScrollView中嵌套ListView与GridView时滑动冲突解决方案
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- 解决嵌套viewpager滑动冲突的解决方案
- ScrollView嵌套ListView滑动冲突的解决方案
- ScrollViewViewPager嵌套导致滑动冲突解决方案
- ScrollView ViewPager嵌套导致滑动冲突解决方案
- Listview嵌套Viewpager滑动冲突解决方案
- cocos2d-objc的配置使用
- Statement中executeQuery、executeUpdate 和 execute的使用方法
- photoshop颜色混合
- Android应用中OOM问题剖析和解决方案
- 课时40|封装-封装的概念,UML类图
- android 可滑动组件互相嵌套时滑动冲突解决方案总结
- 数学计算:Math,round四色五入用法
- VC++6.0编译release版本
- Glide 加载图片之图片数据源
- 装饰者模式java
- 真机测试报The certificate used to sign "XXX" has either expired or has been revoked. An updated certifica
- Android端利用RetroFit实现多文件上传
- python遗传算法模块
- jsp的session对象的基本方法。