如何在 React Native 中为 TextInput 设置 lineHeight 样式?

Posted

技术标签:

【中文标题】如何在 React Native 中为 TextInput 设置 lineHeight 样式?【英文标题】:How to set lineHeight style for TextInput in React Native? 【发布时间】:2016-04-01 05:54:20 【问题描述】:

文档说我可以对 TextInput 使用与 Text 相同的样式。在设置即。 Text 上的 lineHeight 具有适当的效果,对 TextInput 这样做是行不通的。

虽然没有错误,但如果我使用了无效的样式属性,应该会显示。

我很想解决这个问题,即使它需要一些 Obj-C。

【问题讨论】:

我没有为您解决的问题,但我确实为您创建的问题添加了一些细节。 github.com/facebook/react-native/issues/4977 【参考方案1】:

我不确定这是否会在 18.0-rc 或 15.0-rc 中得到修复,但看起来 Nick Lockwood 在提交中修复了这个问题:06a44a31。诀窍是在<TextInput> 元素内嵌套一个<Text> 元素。

   <TextInput
     multiline=true
     style=styles.multiline
     onChangeText=(text) => 
       this.setState(text);
     
   >
     <Text>parts</Text>
   </TextInput>

【讨论】:

这是正确的解决方案,但它暗示了其他错误,例如当您快速书写时存在滞后和字母错位,并且占位符的行高无法调整,这看起来很糟糕。 (目前我个人的解决方案是自定义行高的字体,用 Font Forge 很容易实现) 很高兴知道。您应该在上面的 github 提交和问题中分享您的观察。

以上是关于如何在 React Native 中为 TextInput 设置 lineHeight 样式?的主要内容,如果未能解决你的问题,请参考以下文章