【问题标题】:React Native IOS/Android style differenceReact Native IOS/Android 风格区别
【发布时间】:2017-05-17 08:18:38
【问题描述】:

我一直在尝试在我的 React Native 应用程序中创建一个函数,该函数输出一个带有首字下沉的段落。这是我正在使用的代码:

export function returnFirstParagraph(contentRef) {
 return (
  <View>
      <View style={{ flex: 1, flexDirection: 'row', marginTop: 40, marginBottom: 10 }}>
        <Text style={{ fontSize: 16, lineHeight: 28, alignSelf: 'flex-start' }}>
          <Text style={{ fontSize: 40, lineHeight: 28, }}>
            {contentRef.charAt(0)}
          </Text>
            {contentRef.slice(1)}
        </Text>
      </View>
   </View>
  );
}

contentRef 只是一个从另一个文件传递过来的字符串,包含相关的文本。

这是 iOS 输出:

这是 Android 版本:

如您所见,iOS 版本将第一行顶部剪掉,在第一行下方添加了 padding/margin,看起来不太对劲。与此同时,Android 版本正在按我的预期输出。

谁能说明为什么会这样?

编辑: 建议从代码中删除 lineHeight。这改变了事情,但没有解决问题:

iOS:

安卓:

【问题讨论】:

    标签: react-native flexbox react-native-flexbox


    【解决方案1】:

    问题在于lineHeight 值。删除它并尝试如下

    <View style={{ flexDirection: 'row', marginTop: 40, marginBottom: 10 }}>
        <Text style={{ fontSize: 16, padding: 20 }}>
          <Text style={{ fontSize: 40}}>
            {contentRef.charAt(0)}
          </Text>
          <Text style={{ lineHeight: 28}}>
            {contentRef.slice(1)}
          </Text>
        </Text>
      </View>
    

    【讨论】:

    • 这有所不同,但在 iOS 中,第一行下方的空间仍然比其余间距大。此外,UI 需要行间距,因为段落行间距意味着它之间有相当数量的垂直空白。然后,Android 版本增加了一吨间距 - 我已经更新了我原来的问题以显示这一点
    • 将填充设置为顶部&lt;Text style={{ fontSize: 16, padding: 20 }} &gt; 并检查它是否有效
    • 遗憾的是没有 - 填充只是作为一个块出现在文本元素周围,不会以任何方式影响行间距。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2016-05-03
    • 2018-11-17
    相关资源
    最近更新 更多