1

다음 스타일을 사용하여 내 preferenceCategory을 설정 했었습니다.
그러나 보이는대로 배경색은 Lollipop에서 실행될 때 적용되지 않습니다.'preferenceCategory'스타일 배경이 롤리팝에서 작동하지 않습니다.

<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

왜 환경 설정 범주 스타일을 설정하는 대신에'preferenceCategoryStyle'의'listSeparatorTextViewStyle'을 사용하고 있습니까? – alanv

+0

내가 stackOverflow에서 대답 중 하나를 따랐을지라도, 스타일을 'android : preferenceCategoryStyle'을 재정의한다고해도 (다른 모든 속성도 무시되는 것처럼 보입니다.) – SagiLow

답변

3

기본 설정 방식으로 인해 이러한 속성으로 레이아웃을 만들고 테마 android:preferenceCategoryStyle에 의해 참조되는 스타일로 android:layout 속성을 설정해야합니다.

아래 예제 코드는 재질에 적합합니다. Holo 또는 AppCompat를 타겟팅하는 경우 적절한 대용품을 찾아야합니다.

고해상도/값/themes.xml :

<style name="MyAppTheme" parent="@android:style/Theme.Material.Light.DarkActionBar"> 
    ... 
    <item name="android:preferenceCategoryStyle">@style/MyCategoryPreferenceStyle</item> 
</style> 

고해상도/값/styles.xml

<style name="MyCategoryPreferenceStyle" parent="@android:style/Preference.Material.Category"> 
    ... 
    <item name="android:layout">@layout/my_category_preference</item> 
</style> 

당신은 다음과 같은 레이아웃에 필요한 속성을 어떤 적용됩니다. 계속해서 스타일을 사용하고 TextView 요소에 style 속성을 지정할 수도 있지만 올바른 부모 스타일을 사용하고 있는지 확인하십시오.

고해상도/레이아웃/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" /> 
+0

감사합니다. – SagiLow

+0

AppCompat 라이브러리를 사용하고 있는데,이 답변은 한 가지 예외로 완벽하게 작동합니다.'parent = "@ style/Preference.Material.Category"'및 다른 링크 스타일이 오류를 생성하므로 스타일에서 다음 속성을 제거해야했습니다. – Aryo

+0

답변에서 언급했듯이 Holo 또는 AppCompat를 타겟팅하는 경우 적절한 대용품을 찾아야합니다. 예 :'@ style/Theme.AppCompat.Light.DarkActionBar'. – alanv

관련 문제