Depuis que j'ai mis à niveau vers Android oreo sur mobile mon support RTL pour l'application ne fonctionne pas. il change les chaînes en arabe mais ne change pas la direction de mise en page. mais si je cours le même décalage RTL vers n'importe quel appareil inférieur à Oero, tout fonctionne bien. quelqu'un d'autre a connu ce problème? Existe-t-il une déclaration officielle sur ce bug et cette solution de contournement?RTL mise en page bug dans android Oreo
ci-dessous est ma méthode pour modifier les paramètres régionaux
public static boolean setDefaultLocale(Context context) {
Resources resources = context.getResources();
PreferenceManager preferenceManager = PreferenceManager.getInstance();
String localLanguage = resources.getConfiguration().locale.getLanguage();
boolean isLanguageChanged = !preferenceManager.getCurrentLanguageCode().equalsIgnoreCase(localLanguage);
if (isLanguageChanged) {
Log.d("", preferenceManager.getCurrentLanguageCode());
Locale locale = new Locale(preferenceManager.getCurrentLanguageCode());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
Locale.setDefault(Locale.Category.DISPLAY, locale);
else
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
resources.updateConfiguration(config, resources.getDisplayMetrics());
((Activity) context).recreate();
}
return isLanguageChanged;
}
Avez-vous activé RTL dans le manifeste? –
@SamuelRobert: oui android: supportsRtl = "vrai" –
@SamuelRobert: juste pour effacer le fait, tout fonctionne bien comme prévu même la mise en page RTL Shifting ci-dessous, mais pas dans les appareils oreo. –