react-native 手势响应

手势响应

一般的组件需要与TouchablePpacity组件配合才能完整的手势触摸的操作,但是触摸之后产生的响应事件还是定义在对应的View中的。正常的响应事件流程应该是这样的:

是否接受响应=>响应触摸事件=>释放触摸事件

与流程相对应的方法是:

View.props.onStartShouldSetResponder: (evt) => true: 在用户开始触摸的时候(手指刚刚接触屏幕的瞬间),是否愿意成为响应者?View.props.onMoveShouldSetResponder: (evt) => true:如果View不是响应者,那么在每一个触摸点开始移动(没有停下也没有离开屏幕)时再询问一次:是否愿意响应触摸交互呢?

如果View返回true,并开始尝试成为响应者,那么会触发下列事件之一:

View.props.onResponderGrant: (evt) => {}:View现在要开始响应触摸事件了。这也是需要做高亮的时候,使用户知道他到底点到了哪里。

View.props.onResponderReject: (evt) => {}:响应者现在“另有其人”而且暂时不会“放权”,请另作安排。

如果View已经开始响应触摸事件了,那么下列这些处理函数会被一一调用:

View.props.onResponderMove: (evt) => {}:用户正在屏幕上移动手指时(没有停下也没有离开屏幕)。

View.props.onResponderRelease: (evt) => {}:触摸操作结束时触发,比如"touchUp"(手指抬起离开屏幕)。

View.props.onResponderTerminationRequest: (evt) => true:有其他组件请求接替响应者,当前的View是否“放权”?返回true的话则释放响应者权力。

View.props.onResponderTerminate: (evt) => {}:响应者权力已经交出。这可能是由于其他View通过onResponderTerminationRequest请求的,也可能是由操作系统强制夺权

ssssssssss.jpeg

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容