React-native 支持 RTL 和 LTR,无需更改设备语言

Posted

技术标签:

【中文标题】React-native 支持 RTL 和 LTR,无需更改设备语言【英文标题】:React-native support RTL and LTR without changing device language 【发布时间】:2018-11-30 08:50:43 【问题描述】:

我使用 react-native-i18n 包来支持国际语言。它正在工作,但现在我希望我的应用程序可以根据语言更改应用程序内部的 RTL 和 LTR,而无需更改设备语言。我在我的应用程序中使用了本机基础组件。 所以我不能改变他们的风格,如果有可能,那怎么办?

我创建了更改语言的设置选项,它正在更改,但是如何将 LTR 更改为 RTL 和 RTL 更改为 LTR 应用程序的所有组件。 如果有任何解决方案,请告诉我。

【问题讨论】:

android 设备开发者设置中,有一个复选框可以强制 RTL 布局(不更改语言)。这是你一直在寻找的吗? 谢谢,但我并没有在寻找安卓设备设置的任何变化。我只是通过在应用程序中使用方向样式来解决我的问题。 请添加为反应应用程序设置方向样式的方式作为您的答案。如果您对它感到满意,SO 鼓励您接受您自己的答案。 // 你的代码放在这里.... 并给出 textAlign : "left" 它将根据方向调整文本对齐方式。 link 中的这个解决方案对我有用。享受它。 【参考方案1】:

来自 react-native docs:

direction 指定用户界面的方向流。这 默认为inherit,但root 节点除外,该节点将具有值 基于当前的语言环境。

这意味着如果您将顶部View 样式方向更改为"rtl",所有子组件都应继承该方向。

【讨论】:

以上是关于React-native 支持 RTL 和 LTR,无需更改设备语言的主要内容,如果未能解决你的问题,请参考以下文章

将 Native App LTR 反应到 RTL 更改,而无需重新启动应用程序

使用 2 个不同的故事板,一个用于 LTR,一个用于 RTL(非自动布局)

将 LTR 转换为 RTL?

Laravel 5 - 多语言网站(LTR 和 RTL)

LTR 到 RTL 在目标 c 中使用相同的 xib

如何将RTL和LTR文本方向混合在一起 元件?