проблема с макетом RTL в реагировать родной проект, только когда я выпускаю apk - PullRequest
1 голос
/ 14 июня 2019

Я создаю приложение, которое должно поддерживать только макет RTL, независимо от того, какой язык телефона.

Моя проблема в том, что когда я нахожусь в режиме отладки, он работает нормально и показывает макет RTL, как я хотелнезависимо от языка телефона, но после того, как я выпущу приложение, оно показывает направление раскладки как язык телефона.Может кто-нибудь сказать мне, что это может быть?

я пробовал следующее решение:

добавить эту строку в конструкторе главной страницы

I18nManager.allowRTL (true);I18nManager.forceRTL (true);

также добавьте эту строку в манифест android: android: supportRtl = "true"

как в теге активности, так и в теге приложения

manifest:

<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 голосов
/ 14 июня 2019

Добавьте эти три строки в свой 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);
        ....
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...