最近需要用到react-native的手势操作,从而去看了关于View的许多文档,现在做个总结。
首先,还是要知道他的解释,看了文档的都知道,react-native的View,不论在什么平台上,他都对应一个平台的原生视图,无论他是UIView、div、还是android.view.View。
然后再是去看他的属性方法,这些属性方法就是今天的重头戏了。
一、onLayout function
当组件挂载或者变化的时候调用,内部有nativeEvent.layout属性,包含四个参数:
x(距离根元素x轴距离),
y(记录根元素y轴距离),
width(当前View的宽),
height(当前View的高),
例子:
<View style={
{flex:1,}}
onLayout={(event) => {
var viewWidth = event.nativeEvent.layout.width;
var viewHeight = event.nativeEvent.layout.height;
if (!viewWidth || this.state.containerViewWidth === viewWidth) {
return;
}
this.setState({
containerViewWidth: viewWidth,
containerViewHeight: viewHeight,
});
}}/>
以上例子把View的宽和高保存在state中,用于以后计算
二、手势操作
1.View.porps.handleStartShouldSetPanResponder
用户通过触摸激活手势的responder,返回true
2.View.porps.onMoveSetPanResponder