как отключить rtl при смене языка телефона?

#reactjs #react-native #react-router

#reactjs #react-native #реагировать-маршрутизатор

Вопрос:

я создал приложение на языке react-native, когда язык телефона — En, все идет нормально, но когда я меняю язык телефона, пользовательский интерфейс выходит из строя, и все, что я использую, работает в обратном направлении

 "react": "16.6.3",
    "react-native": "0.58.5",
  

Ответ №1:

Вы должны отключить просмотр rtl в своем приложении

Поместите этот код в app.js:-

 const ReactNative = require('react-native');
try {
  ReactNative.I18nManager.allowRTL(false);
} catch (e) {
  console.log(e);
}
  

и все должно быть в порядке.

Ответ №2:

I18nManager.allowRTL(false); не сработало в первый раз, когда я открыл приложение, но это сработало в следующий раз, когда я открыл приложение. Вместо этого я внес эти изменения в MainApplication.java , и это работает совершенно нормально:

 import com.facebook.react.modules.i18nmanager.I18nUtil;
....
@Override
public void onCreate() {
    super.onCreate();
    // FORCE LTR
    I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
    sharedI18nUtilInstance.allowRTL(getApplicationContext(), false);
    .....
}
.....
  

Ресурс

Ответ №3:

Похоже на @Roozbeh, но вы можете просто сделать это:

 import { I18nManager} from 'react-native';
  

затем

  try { 
    I18nManager.allowRTL(false);
} 
catch (e) {
    console.log(e);
}