我曾经使用以下样式来设置我的preferenceCategory
但是看起来,在Lollipop
上运行时不会应用背景颜色。
<style name="Theme.Preference.Category" parent="@android:attr/listSeparatorTextViewStyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">@color/primary_light</item>
<item name="android:background">@color/primary_dark</item>
<item name="android:paddingTop">4dp</item>
<item name="android:paddingBottom">4dp</item>
<item name="android:paddingLeft">4dp</item>
</style>
我在我的主题中设置了它:<item name="android:listSeparatorTextViewStyle">@style/Theme.Preference.Category</item>
。
是Lollipop
?
答案 0 :(得分:4)
由于Preference的结构方式,您需要创建包含这些属性的布局,并在主题android:layout
引用的样式中设置android:preferenceCategoryStyle
属性。
以下示例代码适用于Material。如果您要定位Holo或AppCompat,则需要找到合适的替代品。
RES /值/的themes.xml:
<style name="MyAppTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
...
<item name="android:preferenceCategoryStyle">@style/MyCategoryPreferenceStyle</item>
</style>
RES /值/ styles.xml
<style name="MyCategoryPreferenceStyle" parent="@android:style/Preference.Material.Category">
...
<item name="android:layout">@layout/my_category_preference</item>
</style>
您将在以下布局中应用所需的任何属性。您还可以继续使用样式并在style
元素上指定TextView
属性,但只需确保您使用有效的父样式。
RES /布局/ my_category_preference.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dip"
android:textAppearance="@android:style/TextAppearance.Material.Body2"
android:textColor="?android:attr/colorAccent"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:paddingTop="16dip" />