在iOS问题上反应本机多行垂直居中文本

时间:2019-01-23 21:40:16

标签: ios react-native textinput

我在我的react-native应用程序中使用多行TextInput,并且在上面停留了一段时间。我无法使文本在IOS设备上垂直对齐。

使用textAlign ='center'将文本放在IOS上垂直居中...但是它变成未包装的永不结束的行。

添加multiline = {true}会否定IOS中垂直对齐的文本,并将其放在输入的顶部。

<TextInput
    style={{ 
        width: wp('80%'), 
        height: hp('25%'), 
        borderWidth: 1, 
        borderRadius: 10,   
        fontSize: RF(3), 
    }}
    textAlign={'center'}
    multiline={true}
    onChangeText={entry => this.setState({entry})}
    value={this.state.entry}
/>

我希望这种行为类似于android,因为它显示占位符文本垂直和水平居中,并且当用户输入更多文本时,如果需要,它会开始创建多行,但始终会垂直和水平居中。

请查看左侧为android版本和右侧为IOS的图片。

Android on left, IOS on right

3 个答案:

答案 0 :(得分:0)

尝试将textAlignVertical = {“ center”}添加到textInput的道具

答案 1 :(得分:0)

将属性 paddingTop 添加到 TextInput 文件中的 XML

答案 2 :(得分:0)

您是否尝试过将 TextInput 包装在视图中?

<View style={{ alignItems: 'center', justifyContent: 'center' }}>
    <TextInput
        style={{ 
            width: wp('80%'), 
            height: hp('25%'), 
            borderWidth: 1, 
            borderRadius: 10,   
            fontSize: RF(3), 
        }}
        textAlign={'center'}
        multiline={true}
        onChangeText={entry => this.setState({entry})}
        value={this.state.entry}
    />
</View>