我正在使用Android Studio,并且在我的主活动中有一个SwitchCompat小部件。它的默认字体系列是sans-serif-medium,我将其改为quicksand_light。我还有一些TextViews,每个字体系列的字体都设置为quicksand_light。在我的活动的xml文件的设计选项卡上,它显示了与TextViews一样具有quicksand_light字体系列的SwitchCompat,但是当我在我的手机或模拟器上运行它时,SwitchCompat的字体系列是sans-serif-medium。我需要做什么额外的事情来改变字体系列,或者这是一个bug,或者这只是我一个人的问题?
发布于 2018-01-25 04:32:20
我还没有深入研究为什么在XML语言中定义fontFamily属性时它不能正确工作,但是如果您设置字体programmatically.,IT就会工作
下面是一个使用数据绑定的示例。
添加以下数据绑定适配器:
@BindingAdapter("labelTypeface")
fun setLabelTypeface(view: SwitchCompat, @FontRes id: Int) {
view.typeface = ResourcesCompat.getFont(view.context, id)
}并在您的布局中使用它:
<android.support.v7.widget.SwitchCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:labelTypeface="@{R.font.stratum}"
... />发布于 2019-09-10 08:28:47
我能够在交换机的拇指(而不是标签)上设置字体系列的唯一方法是:
my_switch.setSwitchTypeface(ResourcesCompat.getFont(context, R.font.my_font))https://stackoverflow.com/questions/48140043
复制相似问题