我正在使用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还是仅仅是我?
答案 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))