实验特征
Weex封装原生触摸事件以提供手势系统。使用手势类似于在Weex中使用事件。只需on在节点上设置属性即可收听手势。
类型
目前,有四种类型的手势:
Touch
。当触摸点被放置,移动或从触摸表面移除时,触摸手势被触发。触摸手势是准确的,因为它会报告每一个微不足道的事件。因此,听触摸手势可能会很慢,即使发生小动作也需要处理大量的事件。有三种类型的触摸手势:touchstart
将触摸点放置在触摸表面时触发。touchmove
将在触摸点沿着触摸表面移动时被触发。touchend
将触摸点从触摸表面移除时触发。shouldStopPropagation
每一个触摸事件都会被触发,触摸事件是否应该通过返回true
(应该是bubble
)还是false
(触摸此视图所消耗的事件,不会冒泡)来触发事件。这可以用来处理视图之间的触摸冲突。(自v0.18 +以来)
Pan
平移手势也会报告触摸表面上的触摸点的运动,这与触摸手势相似。但是泛手势被采样并且比触摸事件更快。因此,它比触摸手势的准确性要低。Pan
手势也有三种类型,这些类型的含义非常接近Touch
的类型。panstart
panmove
panend
Horizontal/Vertical Pan
主要用于冲突解决系统完成之前的单元划动手势。手势的开始/移动/结束状态将通过state
属性传递。注意:这些手势当前与Android
上的点击事件冲突。horizontalpan
verticalpan
Swipe
用户在屏幕上滑动触摸点时会触发滑动。一连串的动作只会触发一个滑动手势。LongPress
当触摸点持续500 ms或更长时,LongPress
被触发。
触摸手势和Pan非常接近,具有以下特征:
Touch
未采样,准确,但速度慢。Pan
采样速度快,精度较低。
属性
手势回调中可以使用以下属性:
direction
。只存在滑动手势。表明轻扫direcion
,从选择up,left,bottom,right
。changedTouches
。对当前手势有贡献的每个触摸指针的一组运动。
changedTouches
changedTouches
是一个数组,其子对象具有以下属性:
identifier
。触摸指针的唯一标识符。pageX
。触摸指针相对于文档左边缘的X坐标。pageY
。触摸指针相对于文档顶部的Y坐标。screenX
。触摸点相对于屏幕左边缘的X坐标。screenY
。触摸点相对于屏幕上边缘的Y坐标。
压抑
目前,Weex的Android
不支持听手势scroller
,list
并且webview
,因为它会导致冲突的大量的事件。