La nouvelle version de React Native prend en charge les périphériques RTL: https://facebook.github.io/react-native/blog/2016/08/19/right-to-left-support- for-react-native-apps.html
Cependant, il semble que dans les appareils Android RTL, la mise en page RTL soit forcée et qu'il est impossible de la modifier. Toutes les applications sont donc cassées pour les appareils RTL. Comment forcer mon application à utiliser LTR ?
J'ai réussi à résoudre ce problème en ajoutant à MainApplication.Java
:
import com.facebook.react.modules.i18nmanager.I18nUtil;
public class MainApplication extends Application implements ReactApplication {
@Override
public void onCreate() {
super.onCreate();
// FORCE LTR
I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
sharedI18nUtilInstance.allowRTL(getApplicationContext(), false);
....
}
}
Dans le fichier manifest.xml, ajoutez Android:supportsRtl="false"
à votre balise d'application
Je pense que c'est un meilleur moyen de résoudre le problème sans passer par les codes natifs, en particulier si vous utilisez Expo
import { I18nManager} from 'react-native';
I18nManager.allowRTL(false);
export default class <className> extends Component {
}