web-dev-qa-db-fra.com

RTL est forcé dans les périphériques RTL

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 ?

20
atlanteh

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);
        ....
    }
}
34
atlanteh

Dans le fichier manifest.xml, ajoutez Android:supportsRtl="false" à votre balise d'application

5
masoud vali

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 {



}
0
Ahmed Imam