#android #material-design #android-button
#Android #материал-дизайн #android-кнопка
Вопрос:
Я использую библиотеку под названием material-dialogs от afollestad. Мне нужно изменить цвет текста положительного и отрицательного действия кнопки.
MaterialDialog(this).show {
positiveButton("yes") {
clearData()
goToLoginPage()
}
negativeButton("cancel") { dismiss() }
message("Some message")
}
Приведенный выше код для отображения диалогового окна материала. Для аргументов кнопки может быть указано только название кнопки. Мое требование — изменить «да» на зеленый цвет текста и «отмена» на красный цвет текста. Возможно ли этого добиться с помощью этой библиотеки?
Комментарии:
1. Проверьте эту ссылку
2. Да, я сделал. Они предоставили опцию цвета текста для заголовка и сообщения, но не для положительного текста кнопки и отрицательного текста кнопки. Поэтому мне нужен какой-то способ достичь этого.
3. Хорошо, можете ли вы показать мне код только создаваемого вами диалогового окна, я проверю и расскажу, как вы можете изменить. Опубликуйте код создания диалогового окна в своих вопросах.
4. Теперь я опубликовал код в своем вопросе.
5. Проверьте мой ответ на решение.
Ответ №1:
Хорошо, вот три строки, которые вы можете переопределить в вашем приложении, тема внутри styles.xml чтобы придать ему свои собственные цвета.
Чтобы изменить цвет заголовка диалогового окна
<item name="md_color_title">@color/yourTitleColor</item>
Чтобы изменить цвет содержимого диалогового окна
<item name="md_color_content">@color/yourContentColor</item>
Чтобы изменить цвета положительных и отрицательных кнопок диалогового окна
<item name="md_color_button_text">@color/yourPositiveNegativeColor</item>
Чтобы изменить цвет фона диалогового окна
<item name="md_background_color">@color/yourDialogBgColor</item>
Чтобы изменить цвет разделителя диалогового окна
<item name="md_divider_color">@color/yourDialogDividerColor</item>
Редактировать:
Поскольку OP сказал, что он хочет придать разные цвета положительным и отрицательным кнопкам, в библиотеке, похоже, нет решения, но мы можем использовать обходной путь, приведенный ниже. Используя java-метод Html.откуда мы можем установить наш собственный цвет для текста каждой кнопки.
val yesText = "<font color='#1B1ED8'>Yes</font>"
val cancelText = "<font color='#44D81B'>Cancel</font>"
MaterialDialog(this).show {
positiveButton(text = Html.fromHtml(yesText))
negativeButton(text = Html.fromHtml(cancelText))
message(R.string.Some_message)
}
Комментарии:
1. md_color_button_text изменяет цвет для текста кнопки. Нужен другой цвет текста кнопки для положительного и отрицательного.
2. Смотрите приведенную выше правку в ответе
Ответ №2:
всегда читайте документы, прежде чем отправлять вопрос!
проверьте эту ссылку для определения тематики и цветов текста в диалоговом окне: материал-диалог> документы > Цвет текста
Комментарии:
1. Я действительно прочитал документы. Они предоставили опцию только для заголовка и содержимого диалогового окна. Не для положительных и отрицательных кнопок, которые отображаются в нижней части диалогового окна для взаимодействия с пользователем.
2. извините за поздний ответ, но документы о цвете текста не требуют пояснений, так как
md_color_title
обозначают цвет текста заголовка ,md_color_title
обозначают цвет содержимого / основного текста иmd_color_button_text
обозначают цвет текста кнопок . я надеюсь, что они помогут вам. 🙂3. прочитайте документы. применил цвет в стилях. по-прежнему не работает.
Ответ №3:
попробуйте этот код, .positiveColor () и .negativeColor () и измените его на версию gradle в вашем проекте
// Material Dialogs
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
Смотрите полный пример и загружайте исходный код, когда u возьмет.
https://github.com/afollestad/material-dialogs/blob/master/documentation/CORE.md#text-color
Комментарии:
1. Для этого он должен понизить версию, где kotlin не поддерживается, и он должен перейти с Androidx на android и решить проблему между слиянием манифестов.
2. Нет поддерживаемого Kotlin, измените путь к этому классу ‘com.android.tools.build: gradle: 3.1.4’
Ответ №4:
По умолчанию для цветов заголовка и содержимого диалогового окна материалов используются атрибуты android: textColorPrimary и android: textColorSecondary из темы вашего действия. colorPrimary используется для цвета текста кнопок действий по умолчанию. Если вы хотите переопределить их, предоставляются соответствующие атрибуты. Используйте этот пользовательский стиль в своем диалоговом окне.
<style name="AppTheme.Custom" parent="Theme.AppCompat">
<item name="md_color_title">@color/your_color</item>
<item name="md_color_content">@color/your_color</item>
<item name="md_color_button_text">@color/your/color</item>
</style>
или используйте приведенный ниже код для своей темы приложения.
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<item name="android:textViewStyle">@style/InterTextViewStyle</item>
<item name="android:buttonStyle">@style/InterButtonStyle</item>
<item name="md_color_button_text">@color/colorAccent</item>
</style>
Надеюсь, вы получили ответ. Удачного кодирования
Ответ №5:
Это простое решение в два этапа, и оно работает для меня
Шаг 1)
В стиле
<style name="AppThemeMD" parent="Theme.AppCompat.Light.NoActionBar">
<item name="md_color_button_text">@color/YOUR_COLOR_HERE</item>
</style>
Шаг 2) В вашей деятельности или фрагменте
MaterialDialog(this@SplashActivity).show {
setTheme(R.style.AppThemeMD)
icon(R.mipmap.ic_launcher)
title(null, AppConstants.APP_NAME)
positiveButton(R.string.YOUR_STRING_HERE) {
}
}