Диалоговое окно предупреждения о дизайне материалов

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

Вот мой базовый стиль:

<style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/apptheme_color</item> <item name="colorPrimaryDark">@color/apptheme_color_dark</item> <item name="colorAccent">@color/apptheme_color</item> <item name="android:textColorPrimary">@color/action_bar_gray</item> </style> 

Основываясь на моем понимании, текст кнопки диалога также должен использовать эти цвета. Я ошибаюсь в своем понимании или есть что-то еще, что мне нужно сделать?


Решение:

Отмеченный ответ привел меня на правильный путь.

 <style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/apptheme_color</item> <item name="colorPrimaryDark">@color/apptheme_color_dark</item> <item name="colorAccent">@color/apptheme_color</item> <item name="android:actionModeBackground">@color/apptheme_color_dark</item> <item name="android:textColorPrimary">@color/action_bar_gray</item> <item name="sdlDialogStyle">@style/DialogStyleLight</item> <item name="android:seekBarStyle">@style/SeekBarNavyTheme</item> </style> <style name="StyledDialog" parent="Theme.AppCompat.Light.Dialog"> <item name="colorPrimary">@color/apptheme_color</item> <item name="colorPrimaryDark">@color/apptheme_color_dark</item> <item name="colorAccent">@color/apptheme_color</item> </style> 

Solutions Collecting From Web of "Диалоговое окно предупреждения о дизайне материалов"

С новым AppCompat v22.1 вы можете использовать новый AppCompat v22.1 android.support.v7.app.AlertDialog .

Просто используйте такой код:

 import android.support.v7.app.AlertDialog AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle); builder.setTitle("Dialog"); builder.setMessage("Lorem ipsum dolor ...."); builder.setPositiveButton("OK", null); builder.setNegativeButton("Cancel", null); builder.show(); 

И используйте такой стиль:

 <style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="colorAccent">#FFCC00</item> <item name="android:textColorPrimary">#FFFFFF</item> <item name="android:background">#5fa3d0</item> </style> 

В противном случае вы можете определить в своей текущей теме:

 <style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- your style --> <item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item> </style> 

А затем в вашем коде:

  import android.support.v7.app.AlertDialog AlertDialog.Builder builder = new AlertDialog.Builder(this); 

Здесь AlertDialog на Kitkat: Введите описание изображения здесь

Вот мое решение: https://github.com/afollestad/material-dialogs

Я разработал это для того, чтобы иметь диалоговые окна материалов во всех версиях Android. Это также облегчает некоторые вещи, такие как тематика.

При инициализации диалогового построителя передайте второй параметр в качестве темы. Он автоматически покажет материальный дизайн с уровнем API 21.

 AlertDialog.Builder builder = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_DARK); 

или,

 AlertDialog.Builder builder = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT); 

Вы можете рассмотреть этот проект: https://github.com/fengdai/AlertDialogPro

Он может предоставить вам текстовые диалоговые окна с предупреждением о событиях почти так же, как и леденец. Совместимость с Android 2.1.

AppCompat не делает этого для диалогов (еще не по крайней мере)

EDIT: теперь. Обязательно используйте android.support.v7.app.AlertDialog

Вы можете использовать

Библиотека материалов

Библиотека материалов, созданная для довольно предупреждающих диалогов , кнопок и других вещей, таких как закусочные. В настоящее время он сильно развит.

Руководство, код, пример – https://github.com/navasmdc/MaterialDesignLibrary

Руководство по добавлению библиотеки в Android Studio 1.0 – Как импортировать библиотеку материалов в Android Studio?

,

Счастливое кодирование;)

Попробуйте эту библиотеку:

https://github.com/avast/android-styled-dialogs

Он основан на DialogFragments вместо AlertDialogs (например, тот, что из @afollestad). Главное преимущество: Dialogs не увольняются после вращения, и обратные вызовы все еще работают.

По какой-то причине андроид: textColor только, кажется, обновляет цвет заголовка. Вы можете изменить цвет текста сообщения, используя

 SpannableString.AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.MyDialogTheme)); AlertDialog dialog = builder.create(); Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers"); wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); dialog.setMessage(wordtoSpan); dialog.show();