При создании AlertDialog
вы можете установить тему для использования.
Пример - создание диалога
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
builder.setTitle("AppCompatDialog");
builder.setMessage("Lorem ipsum dolor...");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
styles.xml - Пользовательский стиль
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<!-- Used for the buttons -->
<item name="colorAccent">#FFC107</item>
<!-- Used for the title and text -->
<item name="android:textColorPrimary">#FFFFFF</item>
<!-- Used for the background -->
<item name="android:background">#4CAF50</item>
</style>
результат
редактировать
Чтобы изменить внешний вид заголовка, вы можете сделать следующее. Сначала добавьте новый стиль:
<style name="MyTitleTextStyle">
<item name="android:textColor">#FFEB3B</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>
впоследствии просто укажите этот стиль в вашем MyAlertDialogStyle
:
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
...
<item name="android:windowTitleStyle">@style/MyTitleTextStyle</item>
</style>
Таким образом, вы можете определить другое textColor
для сообщения через android:textColorPrimary
стиль и другое для заголовка через стиль.
обеспечить регресс
источник
appcompat-v7
- она возвращает обратную совместимость новых компонентов до уровня API 7 (Android 2.1)Чтобы использовать тему для всего приложения, и не используйте второй параметр для стилизации вашего диалога
В моем приложении с использованием цветового акцента в теме не отображаются кнопки alertDialog с темой colorAccent. Мне нужно добавить стиль диалога в тему.
источник
Если вы хотите использовать новый android.support.v7.app.AlertDialog и иметь разные цвета для кнопок, а также иметь собственный макет, взгляните на мой https://gist.github.com/JoachimR/6bfbc175d5c8116d411e
источник
Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)
. Я не хочу заходить так далеко, чтобы разделить адаптеры на подклассы и настроить представление там.Следуйте @reVerse ответ , но в моем случае, я уже имел некоторое свойство в моем
AppTheme
LikeТак что мой диалог будет выглядеть
Я решил это
1) Измените импорт с
android.app.AlertDialog
наandroid.support.v7.app.AlertDialog
2) Я переопределяю 2 свойства
AppTheme
с нулевым значением,
Надеюсь, что это поможет другим людям
источник
Если вы похожи на меня, вы просто хотите изменить некоторые цвета в AppCompat, и единственный цвет, который вам нужно уникально изменить в диалоговом окне, это фон. Тогда все, что вам нужно сделать, это установить цвет для
colorBackgroundFloating
.Вот моя основная тема, которая просто изменяет некоторые цвета без вложенных тем:
источник
источник