如何更改SwitchPreference的字体属性?
我已经尝试将app:layout
属性用于以下布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@android:id/title"
style="@android:style/TextAppearance.Widget.TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="MY-FONT"
android:text="Title" />
<TextView
android:id="@android:id/summary"
style="@android:style/TextAppearance.Widget.TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="MY-FONT"
android:text="Summary" />
</LinearLayout>
那行不通,因为缺少开关,而且一切看起来都有些混乱。
自定义fontfamily和textSize的简便(有效)方法是什么?
答案 0 :(得分:0)
要首先在android中更改字体系列,您需要在应用中添加如下字体 Your font goes in the font directory under res
现在要使用它,您的操作方式正确
<Button
...
android:fontFamily="@font/nameOfFont"
... />
现在就让我来看看吧
答案 1 :(得分:0)
您需要通过扩展其主类来创建“自定义开关首选项”
public class CustomSwitchPreference extends SwitchPreference {
public CustomSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
public CustomSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public CustomSwitchPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomSwitchPreference(Context context) {
super(context);
}
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
TextView title1= (TextView) holder.findViewById(android.R.id.title);
title1.setTypeface(ResourcesCompat.getFont(getContext(),R.font.noto_sans_regular));
TextView title2= (TextView) holder.findViewById(android.R.id.summary);
title2.setTypeface(ResourcesCompat.getFont(getContext(),R.font.noto_sans_regular));
}
}
并在您的首选项xml中使用它
来自
<SwitchPreference
.....
/>
到
<com.example.myapp.CustomSwitchPreference
....
/>
这对我有用