【发布时间】:2019-05-13 19:47:06
【问题描述】:
我必须构建一个简单的表单,其中包含 3 个标签和 3 个 TextInput。我想让它们彼此叠放,行之间有一个空格。
我想不出正确的方法。
我的第一次尝试是创建一个带有 flexDirection: 'row' 的顶部视图,然后是标签的第一个子视图,然后是带有文本输入的第二个子视图。这两个视图有 flexDirection: "column" 和 justifyContent: "space between"。
意见:
<View style={[InitWindowStyles.root]}>
<View style={InitWindowStyles.textBoxAndInputBox}>
<Text>User Name</Text>
<Text>Password</Text>
</View>
<View style={InitWindowStyles.textBoxAndInputBox}>
<TextInput
autoCorrect={false}
onChangeText={this.onUserNameChange}
value={this.state.userName}
style={{ backgroundColor: 'white', borderColor: 'black' }}
/>
<TextInput
autoCorrect={false}
onChangeText={this.onPasswordChange}
value={this.state.password}
style={{ backgroundColor: 'white', borderColor: 'black' }}
secureTextEntry={true}
/>
<View>
<View>
风格:
const InitWindowStyles = StyleSheet.create({
root: {
flex: 1,
flexDirection: "row"
},
textBoxAndInputBox: {
flex: 1,
flexDirection: "column",
justifyContent: "space-between",
}
})
结果不是那么糟糕,但并不完美。
我看到的优点是第一列自动调整为最大标签的大小(上图中未显示),第二列采用可用大小。它可以在纵向和横向模式下使用...
正确的做法是什么?
我应该有一个带有 flexDirection:"column" 的顶视图和每对标签和文本的子视图吗?
在 Android 布局中,我会使用 GridView 来实现我想要的。
【问题讨论】:
-
能否请您发布所有受影响视图的完整样式表配置?
-
所以如果我理解得很好,你想要 3 行,每行应该有一个标签和一个文本输入对吗?
-
没错。
-
请发布受影响视图/输入标签的所有样式。
-
我忘记了什么?对我来说,一切都在这里......
标签: react-native jsx react-native-flexbox