最近公司的新项目部分面板需要用ReactNative,其中一个是空调面板,需要通过手势拖动一个环形的Slider来调节温度,好不容易实现了功能,又由于这个面板的背景是一个ScrollView,理所当然的又发生了手势冲突的问题。
先看效果图:

由于背景是一个ScrollView,所以点击也可以拖动

首先,这个环形的Slider是通过SVG来实现的,这里不多说,有需要源码的可以在文章结尾的邮箱给我发邮件。这里主要说一下怎么处理这个手势冲突,大体思路是通过手势来判断目前点击的位置是否属于圆形Slider的区域,如果点击到了圆形Slider,则临时关闭掉SrollView的滑动,判断手指离开后(代表操作圆形Slider结束),开放SrollView的滑动,点击非圆形Slider区域,则不影响。
不废话,贴代码:

通过给圆形Slider设置两个方法来控制来动态设置scrollow的scrollEnabled属性。
个人邮箱:373490025@qq.com
ps:本人是新入坑的菜鸟一枚,欢迎各路大神交流指教。
网友评论