为反应本机 TextInput 设置边框
Setting a border for react native TextInput
使用 React native 0.26,
我的组件是这样的
const Search = () => {
return (
<View style={styles.backgroundImage}>
<TextInput style={styles.textInput} onChangeText={(text) => console.log(text)} placeholder={"Enter Search Term"}/>
</View>
)
}
我的风格:
const styles = StyleSheet.create({
backgroundImage: {
flex : 1,
flexDirection: "column",
justifyContent: 'center',
alignItems: 'center'
},
textInput: {
justifyContent: "center",
alignItems: "stretch",
borderRightWidth: 30,
borderLeftWidth: 30,
height: 50,
borderColor: "#FFFFFF",
}
})
我面临的问题是
- 右边框和左边框似乎没有任何效果,占位符文本刚好从左边缘开始。
- TextInput 的背景是"grey",与View 的背景相同。我原以为它默认是白色的,(感觉透明)。
- 使用 iOS 模拟器如何调出键盘,我想设置
returnKeyType
并查看键盘的外观(并在 onSubmitEditing
上有一些代码并进行测试)。
截图如下:
1 除非启用多行,否则不能直接在 TextInput 上声明特定边框(例如,除非启用 multiline={true}
,否则 borderLeftWidth
将不起作用,但 borderWidth
会起作用),但是您可以将 TextInput 包裹在 View 中并为其添加边框。
inputContainer: {
borderLeftWidth: 4,
borderRightWidth: 4,
height: 70
},
input: {
height: 70,
backgroundColor: '#ffffff',
paddingLeft: 15,
paddingRight: 15
}
2 您需要为 TextInput 声明一个 backgroundColor
。
3 要显示本机键盘,您需要转到模拟器菜单并断开硬件连接。转到硬件 -> 键盘 -> 连接硬件键盘,将其关闭。
从 react-native: 0.61.5
开始,您可以直接在 TextInput 上设置 borderBottomWidth
。就像下面的内联样式或者如果你想要单独的样式对象。
style = {{borderBottomWidth : 1.0}}
默认情况下,boderWidth 将设置为 0。因此使用 borderWidth : 5
默认值(顶部、右侧、底部、左侧)。
如果您想单独分配宽度,您可以选择
style = {{
borderStartWidth : 2
borderEndWidth : 3
borderTopWidth : 1
boderLeftWidth: 2
borderRightWidth: 3
borderBottomWidth : 4
}}
使用 React native 0.26,
我的组件是这样的
const Search = () => {
return (
<View style={styles.backgroundImage}>
<TextInput style={styles.textInput} onChangeText={(text) => console.log(text)} placeholder={"Enter Search Term"}/>
</View>
)
}
我的风格:
const styles = StyleSheet.create({
backgroundImage: {
flex : 1,
flexDirection: "column",
justifyContent: 'center',
alignItems: 'center'
},
textInput: {
justifyContent: "center",
alignItems: "stretch",
borderRightWidth: 30,
borderLeftWidth: 30,
height: 50,
borderColor: "#FFFFFF",
}
})
我面临的问题是
- 右边框和左边框似乎没有任何效果,占位符文本刚好从左边缘开始。
- TextInput 的背景是"grey",与View 的背景相同。我原以为它默认是白色的,(感觉透明)。
- 使用 iOS 模拟器如何调出键盘,我想设置
returnKeyType
并查看键盘的外观(并在onSubmitEditing
上有一些代码并进行测试)。
截图如下:
1 除非启用多行,否则不能直接在 TextInput 上声明特定边框(例如,除非启用 multiline={true}
,否则 borderLeftWidth
将不起作用,但 borderWidth
会起作用),但是您可以将 TextInput 包裹在 View 中并为其添加边框。
inputContainer: {
borderLeftWidth: 4,
borderRightWidth: 4,
height: 70
},
input: {
height: 70,
backgroundColor: '#ffffff',
paddingLeft: 15,
paddingRight: 15
}
2 您需要为 TextInput 声明一个 backgroundColor
。
3 要显示本机键盘,您需要转到模拟器菜单并断开硬件连接。转到硬件 -> 键盘 -> 连接硬件键盘,将其关闭。
从 react-native: 0.61.5
开始,您可以直接在 TextInput 上设置 borderBottomWidth
。就像下面的内联样式或者如果你想要单独的样式对象。
style = {{borderBottomWidth : 1.0}}
默认情况下,boderWidth 将设置为 0。因此使用 borderWidth : 5
默认值(顶部、右侧、底部、左侧)。
如果您想单独分配宽度,您可以选择
style = {{
borderStartWidth : 2
borderEndWidth : 3
borderTopWidth : 1
boderLeftWidth: 2
borderRightWidth: 3
borderBottomWidth : 4
}}