2015-09-23 2 views
0

Я использую PreferenceActivity для добавления PreferenceFragments в свой макет. PreferenceActivity использует пользовательский стиль с родительским Theme.AppCompat.Light.NoActionBar, для которого я обновил colorPrimary, colorPrimaryDark и colorAccent. На lollipop экран предпочтений выглядит так, как ожидалось, используя соответствующие цвета и стили текста, однако, на KitKat, стиль, который я использую, по-видимому, полностью игнорируется.Андроид PreferenceFragment appompat style игнорируется <21

Первоначально я думал, что проблема заключается в том, что PreferenceActivity расширяет Activity, а не AppCompatActivity, но я даже попытался использовать AppCompatDelegate в своей активности предпочтений, и это не помогает. Почему < 21 устройства игнорируют стиль в рамках активности предпочтений?

+0

Это диалоговое окно предупреждения, игнорирующее тему? –

+0

Нет, каждый элемент PreferenceCategory и ListPreference под ними. – tommy

+0

Я думаю, что тема 'Theme.AppCompat.Light.NoActionBar' предназначена для более высоких api и может не поддерживаться более старыми версиями. –

ответ

0

Я думаю, что вы можете исправить проблему, создав собственный стиль для диалогов, а затем отсылайте его в своей основной теме приложения, используя атрибуты и alertDialogTheme.

<!-- Your base app theme --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     ... 
     <item name="dialogTheme">@style/MyDialogStyle</item> 
     <item name="alertDialogTheme">@style/MyDialogStyle</item> 
</style> 

<!-- Custom style for dialogs -->  
<style name="MyDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
      <item name="colorAccent">@color/accent_pink_a200</item> 
      <item name="android:textColorPrimary">@color/white</item> 
      <item name="android:textColorSecondary">@color/white</item> 
      <item name="android:background">@color/primary_deepPurple_500</item> 
      <item name="textColorAlertDialogListItem">@color/white</item> 
      <item name="android:textAppearanceButton">@style/TextAppearance.Widget.AppCompat.Toolbar.Title</item> 
</style> 

Вы можете также включать другие атрибуты, как colorPrimary и colorPrimaryDark в пользовательском стиле в соответствии с вашими потребностями.

Смежные вопросы