修改:
对于遇到这种情况的人来说,我开始工作的方式是:
直接为每个首选项设置布局,如:
<CheckboxPreference
android:layout="@layout/checkbox_preference_item"/>
或者像以前一样通过主题设置样式,但是定义一个widgetlayout并设置它而不是实际布局,就像这样,preferenceStyle
设置为@style/Preference
和{{1 }}设置为checkBoxPreferenceStyle
:
@style/Preference.Checkbox
我尝试自定义复选框首选项的布局,但复选框本身没有显示。我在android代码之后建模并且不确定我哪里出错了。文本视图工作正常以及布局的其余部分,但复选框没有显示。非常感谢任何帮助。
相关代码:
theme.xml:
<Style name="Preference">
<item name="android:layout">@layout/checkbox_preference_item</item>
</Style>
<Style name="Preference.Checkbox">
<item name="android:widgetLayout">@layout/your_custom_widget</item>
</Style>
style.xml
<style name="Theme.Settings" parent="android:Theme.Holo.Light">
<item name="android:actionBarStyle">@style/SettingsActionBarStyle</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:preferenceCategoryStyle">@style/PreferenceCategory</item>
<item name="android:preferenceStyle">@style/Preference</item>
<item name="android:checkBoxPreferenceStyle">@style/Checkbox</item>
</style>
checkbox_preference_item.xml
<style name="Checkbox">
<item name="android:layout">@layout/checkbox_preference_item</item>
</style>
<style name="Preference.Text">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textSize">@dimen/preferences_item_font</item>
<item name="android:textColor">@color/preference_text</item>
</style>
<style name="Preference.Text.Extra" parent="Preference.Text">
<item name="android:textSize">@dimen/preferences_header_font</item>
</style>
答案 0 :(得分:-1)
我没有在布局xml中看到CheckBox。我错过了什么吗?您需要指定类似的内容:
<CheckBox android:id="..." ... />
然后您可能需要指定类似
的内容<CheckBoxPreference android:key="..." ... />
在首选项xml文件中。设置应该是android:widgetLayout到自定义CheckBox。
查看此帖子可能会为您提供更多帮助customizing checkbox preference