如何在带有 React Native Text 的 Android 中实现软连字符

Posted

技术标签:

【中文标题】如何在带有 React Native Text 的 Android 中实现软连字符【英文标题】:How to implement soft hyphen in Android w/ React Native Text 【发布时间】:2019-10-14 11:46:19 【问题描述】:
<Text>
Aufmerksamkeits'\u00AD'defizit
</Text>

这会在 ios 上导致

Aufmerksamkeits- 赤字率

但在 android

Aufmerksamkeitsd 效果图

因此,Android 似乎忽略了给定的软连字符。我怎样才能在Android上也能做到这一点?

谢谢!

【问题讨论】:

【参考方案1】:

我现在有点晚了,但我花在这上面的时间比我引以为豪的要多。如果您想使用软连字符,请在字符串中使用 \u00AD,例如:

&lt;string name="einzelfahrt_name"&gt;Einzelfahrrad\u00ADkarte&lt;/string&gt;

为了使这个工作,在你的 TextView 中,你必须添加:

android:hyphenationFrequency="full"

【讨论】:

哪里需要添加“android:hyphenationFrequency”?请提供示例 在 React Native 中,此选项应设置为属性:&lt;Text android_hyphenationFrequency="full"&gt;Einzelfahrrad\u00ADkarte&lt;/Text&gt; 这对我有用!但请确保您的 React Native 版本高于 0.65。【参考方案2】:

我也有同样的问题,Android 似乎忽略了软连字符。

我能想到的唯一解决方法是,仅在 Android 上,将 \u00AD 替换为 \u200B。它被称为zero-width-space,它会正确地破坏预期的单词,尽管它不会显示任何连字符。你最终会得到:

Aufmerksamkeits
defizit

不是完美的解决方案,但至少不会在随机位置打断单词。

【讨论】:

以上是关于如何在带有 React Native Text 的 Android 中实现软连字符的主要内容,如果未能解决你的问题,请参考以下文章

React-native - 带有 flexbox 的 Pinterest 风格

React-native:如何在 React-native 中使用(和翻译)带有 jsx 的 typescript .tsx 文件?

带有 Typescript 的 React-Native 自定义文本组件:“将 React.ReactNode 类型转换为文本类型......”

如何使用带有钩子的 react-native-action-sheet

如何在带有 Typescript 项目的 React Native 中使用 AWS Amplify?

如何使用 expo 实现带有 react-native 的条带? [关闭]