问题描述
我正在尝试制作一个带有阿拉伯文字的屏幕。它基本上是一个包含嵌套在其中的较小组件的大组件。 (容器就像页面,而较小的则是需要自己处理 onPress 的部分……等等)。 我想让文本以合理的方式显示,线条开始/结束。所以我去了父级并添加了这种样式: 文本容器:{ 方向:“rtl”, 文本对齐:“对齐”, },除了最后一行,它工作得很好,它从左边而不是右边开始。那么,有没有办法告诉 the to justify 并使最后一行从右边开始? 这是它的外观(https://pasteboard.co/JMDRj1e.png) 如果你看最后一行是从左边开始而不是从右边开始,我认为这是 react native 的一个错误。
解决方法
以下对我有用,
对于 iOS,我给出了文本样式 writingDirection: 'rtl'
并通过在 AppDelegate.m 中导入 #import didFinishLaunchingWithOptions:
中添加了这两行,
[[RCTI18nUtil sharedInstance] allowRTL:TRUE];
[[RCTI18nUtil sharedInstance] forceRTL:TRUE];
对于安卓,您可以参考这里,How to set direction property of a View to RTL in React Native。此外,您需要添加 transform: [{scaleX: -1}]
和 flexDirection: row-reverse
。