创建 UI 最基本的组件,view
是一个容器,它支持 flexbox 布局、风格、一些触发处理,和可访问性控制,它被设计成嵌套在其他视图里,并且有 0 到很多个任意类型的孩子。view
直接映射到原生视图,相当于在任意正在运行的平台上的响应,不管它是 UIView
,<div>
,android.view
,等等。这个例子创建了一个视图,将两个颜色的框和自定义的组件打包填充成一行。
<View style={{flexDirection: row, height: 100, padding: 20}}> <View style={{backgroundColor: blue, flex: 0.3}} /> <View style={{backgroundColor: red, flex: 0.5}} /> <MyCustomComponent {...customProps} /></View>
为了清晰和性能,视图被设计成与样式表一起使用,尽管是内联样式也同样支持。
工具
accessibilityLabel 字符串型
当用户与元素进行交互时,覆盖通过屏幕阅读器阅读的文本。在默认情况下,标签是通过遍历所有孩子和累积所有由空间隔开的文本节点创建的。
accessible 布尔型
当它的值为真时,说明视图是一个可访问的元素。在默认情况下,所有的可触发的元素都是可以被访问的。
onMoveShouldSetResponder 函数
对于大多数的触发交互,你可能只是想在 TouchableHighlight
或者 TouchableOpacity
里包装你的组件。为了进一步的探讨,检查 Touchable.js
,ScrollResponder.js
和ResponderEventPlugin.js
。
onResponderGrant 函数
onResponderMove 函数
onResponderReject 函数
onResponderRelease 函数
onResponderTerminate 函数
onResponderTerminationRequest 函数
onStartShouldSetResponder 函数
onStartShouldSetResponderCapture 函数
pointerEvents enum(box-none, none, box-only, auto)
缺乏auto
属性,none
更像是 CSS
的 none
值。box-none
就好像你已经应用了 CSS
类:
.box-none { pointer-events: none; }.box-none * { pointer-events: all; }
box-only
相当于
.box-only { pointer-events: all; }.box-only * { pointer-events: none; }
但是由于 pointerEvents
并不影响布局/外观,通过添加附加模式,我们已经偏离了规范,我们选择在 style
上不包括pointerEvents
。在一些平台上,不管怎样偶们都需要将它作为一个 className
来实现。是否使用 style
时这个平台的实现细节。
removeClippedSubviews 布尔
这是一个通过 RCTView 显示的特定性能属性,当有很多子视图,并且它们大部分都是在幕后,这时被用于滚动内容。为了使这个属性有效,它必须被应用到一个视图中,在这个视图里包含很多子视图和外部约束。子视图中还应该有溢出:隐藏,应该包含视图(或者它的一个子视图)。
Flexbox…
backgroundColor 字符串
borderBottomColor 字符串
borderColor 字符串
borderLeftColor 字符串
borderRadius 数值
borderRightColor 字符串
borderTopColor 字符串
opacity 数值
overflow enum(visible, hidden)
rotation 数值
scaleX 数值
scaleY 数值
shadowColor 字符串
shadowOffset {h: number, w: number}
shadowOpacity 数值
shadowRadius 数值
transformMatrix [数值]
translateX 数值
translateY 数值
testID 字符串型
在端到端测试中用于定位视图
例子
use strict; var React = require(react-native); var { StyleSheet, Text, View, } = React; var styles = StyleSheet.create({ box: { backgroundColor: #527FE4, borderColor: #000033, borderWidth: 1, } }); exports.title = <View>; exports.description = Basic building block of all UI.; exports.displayName = ViewExample; exports.examples = [ { title: Background Color, render: function() { return ( <View style={{backgroundColor: #527FE4, padding: 5}}> <Text style={{fontSize: 11}}> Blue background </Text> </View> ); }, }, { title: Border, render: function() { return ( <View style={{borderColor: #527FE4, borderWidth: 5, padding: 10}}> <Text style={{fontSize: 11}}>5px blue border</Text> </View> ); }, }, { title: Padding/Margin, render: function() { return ( <View style={{borderColor: #bb0000, borderWidth: 0.5}}> <View style={[styles.box, {padding: 5}]}> <Text style={{fontSize: 11}}>5px padding</Text> </View> <View style={[styles.box, {margin: 5}]}> <Text style={{fontSize: 11}}>5px margin</Text> </View> <View style={[styles.box, {margin: 5, padding: 5, alignSelf: flex-start}]}> <Text style={{fontSize: 11}}> 5px margin and padding, </Text> <Text style={{fontSize: 11}}> widthAutonomous=true </Text> </View> </View> ); }, }, { title: Border Radius, render: function() { return ( <View style={{borderWidth: 0.5, borderRadius: 5, padding: 5}}> <Text style={{fontSize: 11}}> Too much use of `borderRadius` (especially large radii) on anything which is scrolling may result in dropped frames. Use sparingly. </Text> </View> ); }, }, { title: Circle with Border Radius, render: function() { return ( <View style={{borderRadius: 10, borderWidth: 1, width: 20, height: 20}} /> ); }, }, { title: Overflow, render: function() { return ( <View style={{flexDirection: row}}> <View style={{ width: 95, height: 10, marginRight: 10, marginBottom: 5, overflow: hidden, borderWidth: 0.5, }}> <View style={{width: 200, height: 20}}> <Text>Overflow hidden</Text> </View> </View> <View style={{width: 95, height: 10, marginBottom: 5, borderWidth: 0.5}}> <View style={{width: 200, height: 20}}> <Text>Overflow visible</Text> </View> </View> </View> ); }, }, { title: Opacity, render: function() { return ( <View> <View style={{opacity: 0}}><Text>Opacity 0</Text></View> <View style={{opacity: 0.1}}><Text>Opacity 0.1</Text></View> <View style={{opacity: 0.3}}><Text>Opacity 0.3</Text></View> <View style={{opacity: 0.5}}><Text>Opacity 0.5</Text></View> <View style={{opacity: 0.7}}><Text>Opacity 0.7</Text></View> <View style={{opacity: 0.9}}><Text>Opacity 0.9</Text></View> <View style={{opacity: 1}}><Text>Opacity 1</Text></View> </View> ); }, }, ];
作者:唐伯虎点蚊香,如若转载,请注明出处:https://www.web176.com/reactnative/22041.html