React Native Expo在LTL默认系统上强制RTL

svmlkihl  于 2023-10-22  发布在  React
关注(0)|答案(1)|浏览(105)

我有一个世博会的应用程序,这是为了只有在他,和RTL不工作,在某些情况下。
在使用RTL系统语言的设备上,HE工作正常,但当系统语言是EN(或任何LTR语言)时,应用程序在第一次加载时将是LTR。
所以,我的问题是,我如何才能强制应用程序始终是RTL,而不管系统语言是什么?
现在,我试图像这样强制它(这段代码在index.js中,我使用的是路由器):

import 'expo-router/entry'
import { I18nManager } from 'react-native'
I18nManager.forceRTL(true)
I18nManager.allowRTL(true)

此外,我尝试过预构建项目,像这里一样更新本机文件,并使用XCode在测试TestFlight中部署,但没有工作。
你有其他解决办法吗?
L.E.
我已经创建了一个修改器,它使用来自其他帖子的建议更新AppDelegate.mm:

#import <React/RCTI18nUtil.h>

didnashLaunchingWithOptions中:

[[RCTI18nUtil sharedInstance] allowRTL:YES];
[[RCTI18nUtil sharedInstance] forceRTL:YES];

所以,我没有手动更新AppDelegate.mm,而是使用expo prebuild中的修改器-仍然无法在系统语言为英语的设备上工作

carvr3hs

carvr3hs1#

你可以使用react-native-restart包来重新加载应用包,以防卡住。

相关问题