如何强制Expo React Native应用始终启用RTL(希伯来语)?
希伯来语Expo应用RTL布局异常问题及解决方案
我开发了一款仅支持希伯来语(HE)的Expo应用,存在RTL(从右到左)显示异常问题:当设备系统语言为RTL时,希伯来语显示正常;但系统语言为英语(EN)等LTR语言时,应用首次加载会变为LTR布局。
尝试过的无效解决方法
- 在使用expo-router的
index.js中添加代码:import 'expo-router/entry' import { I18nManager } from 'react-native' I18nManager.forceRTL(true) I18nManager.allowRTL(true) - 通过
expo prebuild修改原生文件,在AppDelegate.mm中添加:
并在#import <React/RCTI18nUtil.h>didFinishLaunchingWithOptions方法中加入:
经测试,上述方法在英语系统语言设备上仍无效。[[RCTI18nUtil sharedInstance] allowRTL:YES]; [[RCTI18nUtil sharedInstance] forceRTL:YES];
2024年更新:有效解决方案
需在AppDelegate.mm中添加以下代码:
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"he", nil] forKey:@"AppleLanguages"];
内容的提问来源于stack exchange,提问作者Coman Vladut
相关产品推荐
相关产品推荐

