博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义控件(视图)2期笔记11:View的滑动冲突之 概述
阅读量:5234 次
发布时间:2019-06-14

本文共 742 字,大约阅读时间需要 2 分钟。

1. 引入:

 滑动冲突可以说是日常开发中比较常见的一类问题,也是比较让人头疼的一类问题,尤其是在使用第三方框架的时候,两个原本完美的控件,组合在一起之后,忽然发现整个世界都不好了。

那到底是为什么会产生滑动冲突呢 ?

答:其实在界面中只要存在内外两层同时可以滑动,这个时候就会产生滑动冲突。

 

2. 常见的滑动冲突的场景:

  • 场景1:外部滑动方向和内部滑动方向不一致
  • 场景2:外部滑动方法和内部滑动方向一致
  • 场景3:上面两种的嵌套

 

场景1:主要是将ViewPager 和Fragment配合使用所组成的页面滑动效果,这种效果之中,可以通过左右滑动来切换页面,而每个页面内部往往又是一个ListView 。这种情况本来是有滑动冲突的,但是ViewPager内部处理了这种滑动冲突,因此我们采用ViewPager时候无须关注这个问题。但是如果我们使用的不是Viewpager,而是ScrollView,那么就需要手动处理滑动冲突

场景2:系统无法知道用户希望让哪一层滑动,所以当手指滑动的时候会出现问题,要么只有一层能滑动,要么就是内外两层同时滑动得很卡顿。实际开发中主要是内外两层同时能上下滑动 或者 内外两层同时能左右滑动

场景3:本质是上面两个场景的叠加

 

3. 滑动冲突的解决方式:

场景1:外部拦截法 或者 内部拦截法

外部拦截法:点击事件通过父容器拦截处理,如果父容器需要就拦截,不需要就不拦截。

内部拦截法:点击事件父容器不拦截处理,所有的事件都传递给子元素,如果资源需要就直接消耗掉,否则就交给父容器进行处理。

 

场景2 和 场景 3:根据用户需求的逻辑进行解决

 

转载于:https://www.cnblogs.com/hebao0514/p/5700558.html

你可能感兴趣的文章
C语言 - 可变参数再stm32中的应用
查看>>
vscode + platformIO开发stm32f4
查看>>
最新SSM框架整合2019
查看>>
LinkedList的线程安全解决办法
查看>>
eclipse调整控制台长度
查看>>
jsonp和ajax
查看>>
EAS 之F7控件实现多选择并保存
查看>>
eas之获取集合
查看>>
eas之单据删除代码
查看>>
eas之关于编码规则
查看>>
eas之界面之间传递参数
查看>>
EAS BOS开发引入外部JAR
查看>>
S-HR之入职当天离职或录用分配当天离职导入功能之导入模板实现源码
查看>>
mysql之关于连接mysql 8.0连接url
查看>>
redis异常之ERR Client sent AUTH, but no password is set
查看>>
httml标签之article,section,div标签的区别
查看>>
mysql case when 与if函数
查看>>
html页面引入
查看>>
html之novalidate
查看>>
mysql数学函数
查看>>