仅当我发布apk时,响应本地项目中的RTL布局问题

时间:2019-06-14 08:15:00

标签: react-native react-native-android

无论手机语言是什么,我都在构建仅需要支持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

1 个答案:

答案 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);
        ....
    }