【问题标题】:Line wrap with hyphenation in react-nativereact-native 中带有连字符的换行
【发布时间】:2018-03-17 23:17:31
【问题描述】:

我正在尝试使用 react-native 在 Android 中使用自动断字来中断文本行。对于某些语言来说,这是一个重要的特性。例如俄语和它的排版。俄语单词比英语单词长,因此应该用连字符将它们包裹起来以创建一个笔直的右文本边框。

我尝试遵循这个问题中的建议: Hyphenation in Android

我在可以拆分单词的地方添加了软连字符。但 Android 仍然只在空格处换行。然后我用不间断的空格替换了所有空格。它有效,直到一个单词不超过 45 个字母。由于我的所有空格都是不可破坏的,Android 将所有文本视为一个单词,因此如果超过 45 个字母,则不会使用连字符。

这是screenshot with the problem。所有空格都替换为不间断空格。第一段超过 45 个字母,因此 android 在任何位置(不是软连字符处)断行。第二段被裁剪为 45 个字母,您可以在那里看到所需的行为。

我的设置:

npm dependencies:
  "expo": "21.0.0"
  "react-native": "0.48.4"
  "react": "16.0.0-alpha.12"

app.json
  "sdkVersion": "21.0.0"

Android-7.1.1, Expo-1.20 (Android application)

【问题讨论】:

  • 您是否尝试过映射单词或段落的集合,如果单词超过 45 个字符,则添加连字符,否则不要?

标签: android react-native


【解决方案1】:

您是否尝试过使用诸如bramstein/hypher 之类的javascript 连字符库?似乎这应该可以解决问题。

【讨论】:

  • 这是一个在子字符串上分割单词的工具,所以我可以在子字符串之间插入一个软连字符。但问题是 Android 不会呈现那种软连字符。而且我不能自己插入连字符,因为文本不是静态的,它具有动态宽度。
  • 好的,抱歉...只是一个想法。也许还有另一种 JS 解决方案。
猜你喜欢
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-27
  • 1970-01-01
相关资源
最近更新 更多