Как стиль DialogPreference с пользовательской темой?

В моем приложении я использовал Theme.Holo и Theme.Holo.Light без каких-либо проблем. Когда используется тема Holo, и я нажимаю на DialogPreference / ListPreference, всплывающее диалоговое окно также связано с Holo. То же самое для Holo.Light. Но когда PreferencesActivity оформлена моей специальной темой, которая получена из Holo.Light, все диалоги тематики с Holo.Light. Я думаю, что в моей теме не хватает чего-то. Может ли кто-нибудь мне помочь? Большое спасибо!

Вот мой код темы:

<?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> 

Я нашел этот довольно неформатированный, но в остальном хороший ответ .

Суть в том, что DialogPreference s – это AlertDialog s, созданный без параметра theme , что означает, что они применяются к тому, какой когда-либо тема android:alertDialogTheme указывает на.

Поэтому я расширил тему таким образом, чтобы иметь тематический диалог:

 <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> 

colorPrimary , colorPrimaryDark и colorAccent в AppTheme были цветами, которые я хотел применить к диалоговому окну.

Обратите внимание, что мне нужен android:windowMinWidthMinor чтобы диалоговое окно не android:windowMinWidthMinor горизонтально.

Я уточняю вопросы, но не могу спросить их из-за низкой скорости. Так:
1. Правильно ли работает ваш первый стиль?
2.Вы уверены, что тема @android: style / Theme.Holo.Light.Dialog имеет все элементы, которые вы указали в TimePickerDialogFragmentGreen? Например:

 <item name="android:tabWidgetStyle"> @style/TabWidgetGreenTheme</item> 

3. Вы пробовали идею, предложенную Luksprog

И, наконец: я использовал что-то вроде этого, чтобы создать собственный стиль для моих EditTexts:

  <style name="EditTextStyle" parent="@style/Indents"> <item name="android:textColor">@android:color/black</item> <item name="android:background">@android:color/white</item> <item name="android:textColorHint">@android:color/darker_gray</item> <item name="android:textSize">14sp</item> </style> <style name="Indents" parent="@style/Margins"> <item name="android:paddingBottom">@dimen/activity_vertical_padding</item> <item name="android:paddingTop">@dimen/activity_vertical_padding</item> </style> <style name="Margins"> <item name="android:layout_marginTop">@dimen/activity_vertical_margin </item> <item name="android:layout_marginBottom">@dimen/activity_vertical_margin </item> <item name="android:layout_marginLeft">@dimen/activity_horizontal_margin </item> <item name="android:layout_marginRight">@dimen/activity_horizontal_margin </item> </style> 
Intereting Posts
Как создать границы полилинии android, чтобы соответствовать экрану? Android Studio, Locat отображает бесконечное «I / art: Enter while loop». Даже при запуске Empty Activity Детский фрагмент автоматически уничтожается Быстрая выгрузка растровых изображений из памяти Android Studio: невозможно запустить процесс демона Разработка 3D-игры на платформе Android с движком физики Bullet Интеграция с Android Studio и Gradle SetOnTabSelectedListener устарел, запрашивается при создании макета вкладки Как заставить всплывающее меню переполнения избежать препятствия панели действий? Android Retrofit2 Обновить Oauth 2 Token Facebook Share video Exception «ShareVideo должен ссылаться на видео, которое находится на устройстве» на Android Как настроить Android (ADT-Plugin) для Eclipse? Отслеживание событий Google Analytics – максимальная длина строки Async Task OnProgressUpdate CalledFromWrongThreadException: только исходный поток, создавший иерархию представлений, может коснуться его представлений Как открыть подсказку Bluetooth в службах Google Play?