React Native:如何将 <TextInput/> 的高度和宽度设置为 <View/> 容器?

React Native: How to set <TextInput/>'s height and width to <View/> container?

我目前在 <View> 中有一个 <TextInput>,其中有一个 padding: 15。我希望 <TextInput>'s 宽度和高度覆盖 <View> 内的所有 space 除了填充。

所以我尝试了 var width = Dimensions.get('window').width 和以下内容,但是 < TextInput > 遵守左侧的填充,但是当您继续键入时,它超出了右侧的填充:

<View style = {{ padding: 15 }}> <TextInput style = {{ width: width }} /> </View>

那么如何让 TextInput 覆盖 View 内的所有 space、高度和宽度,同时还要遵守 View 的填充规则?

谢谢

尝试将 TextInput 的样式设置为 flex: 1 而不是获取宽度。 Flex 样式将自动填充您的视图并将填充留空。

<View style = {{ padding: 15 }}> <TextInput style = {{ flex: 1 }} /> </View>

首先尝试获取 View 的尺寸:

<View 
    onLayout={(event) => {
        var {x_pos, y_pos, width, height} = event.nativeEvent.layout;
    }} 
/>

然后使用检索到的宽度和高度来设置您的 TextInput 的宽度和高度。唯一的问题是您在运行时获得这些值。

另一个好的答案是添加:

alignItems: 'stretch'

alignItems: 'stretch' 将沿交叉轴拉伸每个子元素,只要子元素没有指定宽度 (flexDirection: row) 或高度 (flexDirection: column)。

在你的容器中,如果你有的话:

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'stretch',
  }
});