У меня есть приложение, которое использует два языка (Locales), и я хочу установить другой шрифт для разных языков, я создал две папки в моем каталоге res font
и font-ar
, когда Я программно изменяю конфигурацию локали в приложении с английского sh на арабский c и запускаю Intent из моего приложения Activity, которое все еще отображается шрифтом Engli sh, мои ресурсы strings.xml
, drawable.xml
обновляются в соответствии с язык, но шрифт не обновляется.
Но когда я убиваю свое приложение и перезапускаю приложение, шрифты отображаются в Arabi c
Найдите мой каталог шрифтов введите описание изображения здесь
// Установка такого шрифта в моем макете
<TextView
android:id="@+id/offer_name_tv"
android:fontFamily="@font/muli_bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_lsmall"
android:maxWidth="230dp"
android:text="Mall of Emirates Mall of Emirates Mall of Emirates"
android:textSize="@dimen/textsize_lllmedium"
android:visibility="gone" />
public static void changeToArabicLanguage(Context context) {
Configuration configuration = context.getResources().getConfiguration();
configuration.setLocale(new Locale("ar"));
configuration.setLayoutDirection(new Locale("ar"));
context.getResources().updateConfiguration(configuration, context.getResources().getDisplayMetrics());
}
такой вызов из моего фрагмента для изменения языка
Utility.changeToArabicLanguage(getActivity().getApplicationContext());
Intent intent = new Intent(activity, SplashScreenActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);