【问题标题】:Letter spacing on React Native - AndroidReact Native 上的字母间距 - Android
【发布时间】:2016-07-19 06:45:22
【问题描述】:

我正在使用带有 Android 模拟器(API 级别 23)的 React Native 0.29。我正在尝试在Text 组件上实现letterSpacing。但它似乎不适用于Android。官方文档说它只适用于 iOS。这个问题有解决办法吗?

【问题讨论】:

    标签: react-native react-native-android


    【解决方案1】:

    可以通过在每个字符之间添加一个或多个空格来“解决”Android 上缺少字母间距的问题。我发现 unicode HAIR_SPACE U+200A 可以提供最佳结果,但您可能需要尝试找到最适合您的字体的字体。例如 2 个头发空间或 1 个U+2009 THIN SPACE

    function applyLetterSpacing(string, count = 1) { return string.split('').join('\u200A'.repeat(count)); }

    它可能最适合标题和菜单标签。

    Unicode 空格:https://www.cs.tut.fi/~jkorpela/chars/spaces.html

    【讨论】:

    • 这适用于较小的字体,但对于标题仍然太宽。有比头发空间更薄的东西吗?我环顾四周,但找不到任何东西。像素空间?
    • 一个问题是较长的(中断)文本,文本可能在每个字符后中断(因为有一个空格)。有人找到解决方案了吗?
    【解决方案2】:

    您可以使用 Text 组件的默认道具在字母之间留出空格。喜欢

    <Text style={{ fontSize: 18, letterSpacing: 3, color: '#FFFFFF' }}>Stack Overflow</Text>
    

    【讨论】:

      【解决方案3】:

      从 React Native 0.30 开始,letterSpacing 也仅适用于 iOS。您可以随时添加它并发出拉取请求:)

      另一种选择可能是将一个函数组合在一起,该函数接受一个字符串并在每个字母周围添加间距。 (不过这将是一个黑客攻击!)

      【讨论】:

        【解决方案4】:

        将 React Native 更新到至少版本 0.55 以便在 Android 上使用字母间距。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-03-07
          • 2012-10-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-22
          相关资源
          最近更新 更多