Android 在不重新启动整个应用程序的情况下动态更改应用程序方向
我正在用两种语言开发react本地应用程序,英语和波斯语(波斯语)。 我使用Android 在不重新启动整个应用程序的情况下动态更改应用程序方向,android,react-native,internationalization,Android,React Native,Internationalization,我正在用两种语言开发react本地应用程序,英语和波斯语(波斯语)。 我使用I18nManager设置应用程序布局方向,但我自己管理翻译,而不是使用I18nManager进行翻译因此请注意,我的应用程序翻译与系统区域设置无关。并且应用程序区域设置完全独立于系统区域设置 我将应用程序语言作为道具传递给层次结构中的所有子组件,并在App.js组件(作为系统的根组件)中管理它们的更改。(在App.js中有一个状态称为applicationLanguage) 我在下面有一个函数,我在setState之后
I18nManager
设置应用程序布局方向,但我自己管理翻译,而不是使用I18nManager
进行翻译因此请注意,我的应用程序翻译与系统区域设置无关。并且应用程序区域设置完全独立于系统区域设置
我将应用程序语言作为道具传递给层次结构中的所有子组件,并在App.js
组件(作为系统的根组件)中管理它们的更改。(在App.js中有一个状态称为applicationLanguage
)
我在下面有一个函数,我在setState之后调用它来更改应用程序语言
:
setApplicationDirection = (language: Language) => {
I18nManager.allowRTL(language === Language.Farsi);
I18nManager.forceRTL(language === Language.Farsi);
};
设置应用程序方向的用法
:
onChangeLanguage = (language: Language) => {
this.setState({
applicationLanguage: language
});
this.setApplicationDirection(language);
};
在onChangeLanguage
之后,我的翻译已更改,而无需重新启动应用程序。但应用方向并没有改变
我知道我可以使用
react native restart
手动重启应用程序以使其生效,但我更希望在不重启应用程序的情况下进行更改,以提供更好的用户体验。在我的应用程序中,用户可以更改每个屏幕上的语言,如果我重新启动应用程序,他必须再次转到该屏幕。您找到解决方案了吗?还没有