In my application I was using Theme.Holo and Theme.Holo.Light without any issues. When Holo theme is used and I click on a DialogPreference/ListPreference, a popped dialog is also themed with Holo. Same for the Holo.Light. But when PreferencesActivity is styled with my custom theme, which is derived from Holo.Light, all dialogs are themed with Holo.Light. I think I am missing somthing in my theme. Could anyone help me? Thanks a lot!
Here is my theme code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generated with http://android-holo-colors.com -->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="GreenTheme" parent="android:Theme.Holo.Light">
<item name="android:editTextBackground">@drawable/edit_text_holo_light</item>
<item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextViewGreenTheme</item>
<item name="android:listChoiceIndicatorMultiple">@drawable/btn_check_holo_light</item>
<item name="android:listChoiceIndicatorSingle">@drawable/btn_radio_holo_light</item>
<item name="android:buttonStyle">@style/ButtonGreenTheme</item>
<item name="android:imageButtonStyle">@style/ImageButtonGreenTheme</item>
<item name="android:dropDownSpinnerStyle">@style/SpinnerGreenTheme</item>
<item name="android:tabWidgetStyle">@style/TabWidgetGreenTheme</item>
<item name="android:progressBarStyleHorizontal">@style/ProgressBarGreenTheme</item>
<item name="android:seekBarStyle">@style/SeekBarGreenTheme</item>
<item name="android:buttonStyleToggle">@style/ToggleGreenTheme</item>
<item name="android:listChoiceBackgroundIndicator">@drawable/list_selector_holo_light</item>
<item name="android:activatedBackgroundIndicator">@drawable/activated_background_holo_light</item>
<item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb_holo</item>
<item name="android:actionBarStyle">@style/ActionBar.Solid.Greenactionbar</item>
<item name="android:buttonBarButtonStyle">@style/ButtonBarButtonStyleGreenTheme</item>
<item name="android:preferenceStyle">@style/TimePickerDialogFragmentGreen</item>
</style>
<style name="TimePickerDialogFragmentGreen" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:editTextBackground">@drawable/edit_text_holo_light</item>
<item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextViewGreenTheme</item>
<item name="android:listChoiceIndicatorMultiple">@drawable/btn_check_holo_light</item>
<item name="android:listChoiceIndicatorSingle">@drawable/btn_radio_holo_light</item>
<item name="android:buttonStyle">@style/ButtonGreenTheme</item>
<item name="android:imageButtonStyle">@style/ImageButtonGreenTheme</item>
<item name="android:dropDownSpinnerStyle">@style/SpinnerGreenTheme</item>
<item name="android:tabWidgetStyle">@style/TabWidgetGreenTheme</item>
<item name="android:progressBarStyleHorizontal">@style/ProgressBarGreenTheme</item>
<item name="android:seekBarStyle">@style/SeekBarGreenTheme</item>
<item name="android:buttonStyleToggle">@style/ToggleGreenTheme</item>
<item name="android:listChoiceBackgroundIndicator">@drawable/list_selector_holo_light</item>
<item name="android:activatedBackgroundIndicator">@drawable/activated_background_holo_light</item>
<item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb_holo</item>
<item name="android:actionBarStyle">@style/ActionBar.Solid.Greenactionbar</item>
<item name="android:buttonBarButtonStyle">@style/ButtonBarButtonStyleGreenTheme</item>
</style>
</resources>
I found this rather unformatted but otherwise nice answer.
The gist is that DialogPreference
s are AlertDialog
s created without the theme
parameter, which means they apply which ever theme android:alertDialogTheme
points to.
So I extended my theme like this to have the dialog themed:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/yellow_500</item>
<item name="colorPrimaryDark">@color/yellow_a700</item>
<item name="colorAccent">@color/purple_400</item>
<item name="android:alertDialogTheme">@style/DialogTheme</item>
</style>
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorPrimary">@color/yellow_500</item>
<item name="colorPrimaryDark">@color/yellow_a700</item>
<item name="colorAccent">@color/purple_400</item>
<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
</style>
</resources>
The colorPrimary
, colorPrimaryDark
and colorAccent
in the AppTheme
were the colours I wanted to have applied to the dialog as well.
Note that I needed the android:windowMinWidthMinor
to prevent the dialog from collapsing horizontally.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With