更改区域设置不会更改字体样式

Mor*_*goo 6 fonts android locale font-family

当用户选择一种新语言时,我使用这种方法来设置语言环境。

我也使用这样的样式的字体:

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">


    <item name="android:textAppearance">@style/Font.Default</item>

    </style>
Run Code Online (Sandbox Code Playgroud)

以及文件夹中“ EN ”的样式values

<style name="Font.Default" parent="@android:style/TextAppearance.Small">
    <item name="android:fontFamily">@font/futuralt</item>
    <item name="fontFamily">@font/futuralt</item>
</style>
Run Code Online (Sandbox Code Playgroud)

以及另一种语言“ar”(代表阿拉伯语)的一种样式,values-ar文件夹中有另一种字体

<style name="Font.Default" parent="@android:style/TextAppearance.Small">
    <item name="android:fontFamily">@font/gesstwolight</item>
    <item name="fontFamily">@font/gesstwolight</item>
</style>
Run Code Online (Sandbox Code Playgroud)

问题是当语言环境更改时,表示语言环境的字体不会被应用,除非应用程序重新启动。设置区域设置后如何在不重新启动应用程序的情况下更改字体?

nav*_*ver 0

更改语言环境后,您可以在某个地方调用重新创建

 yourActivity.this.recreate();
Run Code Online (Sandbox Code Playgroud)