SwitchCompat fontfamily不会改变

时间:2018-01-07 18:01:52

标签: android switchcompat

我正在使用Android Studio并在我的主要活动中使用SwitchCompat小部件。它的默认fontfamily是sans-serif-medium,我把它改成了quicksand_light。我也有一些TextViews,他们的每个fontfamily都设置为quicksand_light。在我的活动的xml文件的设计选项卡上,它显示了具有quicksand_light fontfamily的SwitchCompat,就像TextViews一样,但是当我在手机或模拟器上运行它时,SwitchCompat的fontfamily是sans-serif-medium。我需要做些什么来改变fontfamily,或者这是一个bug还是仅仅是我?

2 个答案:

答案 0 :(得分:1)

我还没有深入了解为什么在xml中定义fontFamily属性时它无法正常工作,但如果设置字体 IT WORKS >编程

以下是使用数据绑定的示例。

添加以下数据绑定适配器:

@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}"
    ... />

答案 1 :(得分:0)

我能够在开关的拇指(而不是标签)上设置字体系列的唯一方法是:

    my_switch.setSwitchTypeface(ResourcesCompat.getFont(context, R.font.my_font))