更改语言环境不会更改字体样式

时间:2018-12-09 12:48:09

标签: android fonts locale font-family

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

我也使用这样的字体:

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


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

    </style>

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

<style name="Font.Default" parent="@android:style/TextAppearance.Small">
    <item name="android:fontFamily">@font/futuralt</item>
    <item name="fontFamily">@font/futuralt</item>
</style>

values-ar 文件夹中带有另一种字体的另一种语言“ ar”(表示阿拉伯语)的样式:

<style name="Font.Default" parent="@android:style/TextAppearance.Small">
    <item name="android:fontFamily">@font/gesstwolight</item>
    <item name="fontFamily">@font/gesstwolight</item>
</style>

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

1 个答案:

答案 0 :(得分:0)

更改语言环境后,您可以在某个地方致电recreate

 yourActivity.this.recreate();