无论手机语言是什么,我都在构建仅需要支持rtl布局的应用。
我的问题是,当我处于调试模式时,它的工作状况很好,并且无论电话语言如何,都可以按我的意愿显示布局rtl,但是在我发布应用程序后,它将布局方向显示为电话语言。 谁能告诉我这可能是什么?
我尝试了以下解决方案:
将此行添加到主页的构造器中
I18nManager.allowRTL(true); I18nManager.forceRTL(true);
还要在android清单中添加以下行: android:supportsRtl =“ true”
在活动标签和应用程序标签中
清单:
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
android:supportsRtl="true"
>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize"
android:supportsRtl="true"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
App.js中的构造函数
constructor(){
super();
I18nManager.allowRTL(true);
I18nManager.forceRTL(true);
}
这是个好结果
https://i.imgur.com/S2nV0a4.jpg
这不是我想要的 https://i.imgur.com/VXzYWI1.png
答案 0 :(得分:0)
在您的MainActivity.java中添加这三行
+ import com.facebook.react.modules.i18nmanager.I18nUtil;
@Override
public void onCreate() {
super.onCreate();
// FORCE RTL
+ I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
+ sharedI18nUtilInstance.allowRTL(getApplicationContext(), true);
....
}