Я добавил дизайн приложения 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>
Ответы:
ОБНОВЛЕНО авг 2019 г. с компонентами Material для библиотеки Android:
С новыми компонентами Material для библиотеки Android вы можете использовать новый
com.google.android.material.dialog.MaterialAlertDialogBuilder
класс, который выходит за пределы существующегоandroidx.appcompat.AlertDialog.Builder
класса и обеспечивает поддержку последних спецификаций Material Design.Просто используйте что-то вроде этого:
Вы можете настроить цвета, расширяющие
ThemeOverlay.MaterialComponents.MaterialAlertDialog
стиль:Чтобы применить свой собственный стиль, просто используйте конструктор:
Чтобы настроить кнопки, заголовок и основной текст, проверьте этот пост для более подробной информации.
Вы также можете глобально изменить стиль в теме своего приложения:
С БИБЛИОТЕКОЙ ПОДДЕРЖКИ и ТЕМЫ APPCOMPAT:
С новым
AppCompat v22.1
вы можете использовать новый android.support.v7.app.AlertDialog .Просто используйте такой код:
И используйте такой стиль:
В противном случае вы можете определить в вашей текущей теме:
а затем в вашем коде:
Вот AlertDialog на Киткат:
источник
<item name="android:alertDialogTheme">@style/AppCompatAlertDialogStyle</item>
при инициализации диалогового редактора передайте второй параметр в качестве темы. Он автоматически покажет дизайн материала с уровнем API 21.
или,
источник
AppCompat не делает этого для диалогов (пока, по крайней мере)
РЕДАКТИРОВАТЬ: это делает сейчас. убедитесь, что используете
android.support.v7.app.AlertDialog
источник
import app.AlertDialog
не appCompat. Я пытался выяснить, что не так в течение примерно 40 минут, прежде чем я на самом деле проверил это ... Черт возьми, Google!Вы можете рассмотреть этот проект: https://github.com/fengdai/AlertDialogPro
Он может предоставить вам диалоговые окна с сообщениями о теме материала, почти такие же, как у леденцов. Совместим с Android 2.1.
источник
Вы могли бы использовать
Библиотека дизайна материалов
Material Design Library сделана для довольно диалогов , кнопок и других вещей, таких как закусочные. В настоящее время это сильно развито.
Руководство, код, пример - https://github.com/navasmdc/MaterialDesignLibrary
Руководство по добавлению библиотеки в Android Studio 1.0 - Как импортировать библиотеку материалов в Android Studio?
,
Удачного кодирования;)
источник
Попробуйте эту библиотеку:
https://github.com/avast/android-styled-dialogs
Это основано на
DialogFragments
вместоAlertDialogs
(как тот из @afollestad). Основное преимущество: диалоги не исчезают после поворота, а обратные вызовы по-прежнему работают.источник
По какой-то причине кажется, что android: textColor обновляет цвет заголовка. Вы можете изменить цвет текста сообщения, используя
источник
Диалоговые окна предупреждений о дизайне материала: пользовательский шрифт, кнопка, цвет и форма, ..
Стиль:
Вывод:
источник