Вы должны принять ответ @amorenew

пор, как я перешел на Android Oreo на мобильном устройстве, моя поддержка RTL для приложения не работает. он меняет строки на арабский, но не меняет направление макета. но если я запускаю тот же RTL-сдвиг на любом устройстве ниже, чем у oreo, все работает нормально. кто-нибудь еще сталкивался с этой проблемой? Есть ли официальное заявление об этой ошибке и обходном пути?

Ниже мой метод, чтобы изменить локаль

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;
}

Ответы на вопрос(2)

Ваш ответ на вопрос