Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在不重新启动整个应用程序的情况下动态更改应用程序方向_Android_React Native_Internationalization - Fatal编程技术网

Android 在不重新启动整个应用程序的情况下动态更改应用程序方向

Android 在不重新启动整个应用程序的情况下动态更改应用程序方向,android,react-native,internationalization,Android,React Native,Internationalization,我正在用两种语言开发react本地应用程序,英语和波斯语(波斯语)。 我使用I18nManager设置应用程序布局方向,但我自己管理翻译,而不是使用I18nManager进行翻译因此请注意,我的应用程序翻译与系统区域设置无关。并且应用程序区域设置完全独立于系统区域设置 我将应用程序语言作为道具传递给层次结构中的所有子组件,并在App.js组件(作为系统的根组件)中管理它们的更改。(在App.js中有一个状态称为applicationLanguage) 我在下面有一个函数,我在setState之后

我正在用两种语言开发react本地应用程序,英语和波斯语(波斯语)。 我使用
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
手动重启应用程序以使其生效,但我更希望在不重启应用程序的情况下进行更改,以提供更好的用户体验。在我的应用程序中,用户可以更改每个屏幕上的语言,如果我重新启动应用程序,他必须再次转到该屏幕。

您找到解决方案了吗?还没有