可能重复:
Change icons of checked and unchecked for Checkbox for Android
customize check box preference
有没有办法在PreferencesActivity
中自定义元素样式?
我只能改变彩色文字,背景等。
我还要更改CheckBoxPreference
中的复选标记和单选按钮样式,依此类推。
我对API8或更高版本感兴趣。
感谢您的帮助!
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:defaultValue="true"
android:key="vibrate"
android:summary="summary"
android:title="Some title"
android:widgetLayout="@layout/custom_checkbox" />
<CheckBoxPreference
android:defaultValue="true"
android:key="autorotate"
android:summary="summary"
android:title="auto rotate" />
</PreferenceScreen>
答案 0 :(得分:4)
我明白你现在在说什么。我以为你只是在CheckBox
内使用普通View
。您使用的是CheckBoxPreference
而另一个Preference
Views
。
好的,这个概念很相似。
您需要定义自定义窗口小部件布局。在res/layout
目录中执行此操作,并将其命名为 custom_checkbox.xml
。我们可以使用CheckBox
作为示例。
使用CheckBoxPreference
定义您希望res/layout
查看您在CheckBox
目录中创建的自定义窗口小部件布局的方式。例如:
<CheckBox
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+android:id/customCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/android_button"
android:clickable="false"
android:focusable="false" />
您可以将android:button
替换为您找到或设计的任何drawable
。
现在您需要定义CheckBoxPreference
并将其android:widgetLayout
设置为您在CheckBox
中定义的自定义res/layout
。例如:
<CheckBoxPreference
android:defaultValue="true"
android:key="@string/Drop_Option"
android:title="Close after call drop"
android:widgetLayout="@layout/custom_checkbox" />
如果您没有使用xml
来定义layout
,可以使用以下代码执行此操作:
CheckBoxPreference checkBoxPreference = new CheckBoxPreference(this);
checkBoxPreference.setWidgetLayoutResource(R.layout.custom_checkbox);
Resources found that were similar to this question.
Konstantin Burov
评论中扩展问题的相关链接:
另外,如何更改列表项的样式?
另外,我想在列表项中添加一些填充。