【发布时间】:2016-07-19 06:45:22
【问题描述】:
我正在使用带有 Android 模拟器(API 级别 23)的 React Native 0.29。我正在尝试在Text 组件上实现letterSpacing。但它似乎不适用于Android。官方文档说它只适用于 iOS。这个问题有解决办法吗?
【问题讨论】:
标签: react-native react-native-android
我正在使用带有 Android 模拟器(API 级别 23)的 React Native 0.29。我正在尝试在Text 组件上实现letterSpacing。但它似乎不适用于Android。官方文档说它只适用于 iOS。这个问题有解决办法吗?
【问题讨论】:
标签: react-native react-native-android
可以通过在每个字符之间添加一个或多个空格来“解决”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
【讨论】:
您可以使用 Text 组件的默认道具在字母之间留出空格。喜欢
<Text style={{ fontSize: 18, letterSpacing: 3, color: '#FFFFFF' }}>Stack Overflow</Text>
【讨论】:
从 React Native 0.30 开始,letterSpacing 也仅适用于 iOS。您可以随时添加它并发出拉取请求:)
另一种选择可能是将一个函数组合在一起,该函数接受一个字符串并在每个字母周围添加间距。 (不过这将是一个黑客攻击!)
【讨论】:
将 React Native 更新到至少版本 0.55 以便在 Android 上使用字母间距。
【讨论】: