React-native 占位符仅在 Android 上部分可见

Posted

技术标签:

【中文标题】React-native 占位符仅在 Android 上部分可见【英文标题】:React-native placeholder only partially visible on Android 【发布时间】:2018-10-28 06:44:19 【问题描述】:

我在将 TextInput 居中时遇到问题,同时保持占位符可见。我希望文本从占位符开始的地方开始(居中)。

ios 上它可以工作,但在 android 上它只是部分可见。

IOS 上的结果: IOS placeholder

在安卓上的结果: Android placeholder

这是我的代码:

render() 
return (
  <View style=styles.containerStyle>
    <TextInput
      underlineColorAndroid='transparent'

      placeholder="Placeholder    "
      placeholderTextColor="grey"
      maxLength=6
      style=  fontSize: 30, color: "black",
        justifyContent: "center",  
      onChangeText=this.props.onChangeText
      value=this.props.value.toUpperCase()
    />
  </View>
);
  


const styles = 
  containerStyle: 
    flexDirection: 'row',
    backgroundColor: "#fff",
    borderRadius: 5,
    borderWidth: 1,
    shadowColor: "#000",
    elevation: 2,
    marginLeft: 5,
    marginRight: 5,
    alignItems: 'center',
    justifyContent: "center"
  
;

【问题讨论】:

您是否尝试过为文本输入提供 0 的填充?并不是说它应该引起重大变化,而是android上的文本输入默认有一个填充,它在ios上没有 我尝试在 TextInput 样式下添加padding:0。它没有改变任何东西。 【参考方案1】:

在您的 TextInput 样式中使用 flex:1

<View style=styles.containerStyle>
    <TextInput
      underlineColorAndroid='transparent'

      placeholder="Placeholder    "
      placeholderTextColor="grey"
      maxLength=6
      style=  flex:1, fontSize: 30, color: "black",
        justifyContent: "center",  
      onChangeText=this.props.onChangeText
      value=this.props.value.toUpperCase()
    />
  </View>

【讨论】:

以上是关于React-native 占位符仅在 Android 上部分可见的主要内容,如果未能解决你的问题,请参考以下文章

如何在日期选择器输入上显示占位符?

将输入字段绑定到模型时不显示 HTML 输入字段占位符

如何修复 select2 的占位符在文档准备好时被截断?

占位符文本仅在 Internet Explorer 中可见

图片占位符卡在 iframe 后面(仅在 Windows 机器上)

是否可以有条件地仅在 React 的输入标签中呈现占位符属性?