我已通过以下方式成功将自定义字体应用于应用程序:
同时使用了'android'和'app'命名空间来支持Api <> 26。
在styles.xml-> AppTheme中,添加了TextView,Button和EditText样式,如下所示:
<item name="android:textViewStyle">@style/TelenorTextViewStyle</item>
<item name="android:buttonStyle">@style/TelenorButtonStyle</item>
<item name="android:editTextStyle">@style/TelenorEditTextStyle</item>
每种样式声明如下:
<style name="TelenorTextViewStyle" parent="android:Widget.TextView">
<item name="android:fontFamily">@font/font_telenor</item>
</style>
<style name="TelenorButtonStyle" parent="android:Widget.Holo.Button">
<item name="android:fontFamily">@font/font_telenor</item>
</style>
<style name="TelenorEditTextStyle" parent="android:Widget.EditText">
<item name="android:fontFamily">@font/font_telenor</item>
</style>
它看起来工作得很好,并且字体在各处都有应用。
但是,有一个大问题。
在所有“警报”对话框中,按钮(“确定”,“取消”等)已褪色太多,几乎看不到:
由于应用程序中存在多个警报,因此我不想手动设置按钮颜色,如提到的here。
如果我不以这种方式使用自定义字体,那就没有问题。
我无法理解应用字体和警报按钮颜色之间的关系,以及如何解决此副作用。