Как правильно изменить цвет текста MaterialAlertDialog? - PullRequest
0 голосов
/ 05 июля 2019

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

Давайте рассмотрим MaterialAlertDialog.

Каждый раз, когда я хочу показать диалоговое окно, я вызываю такую ​​часть кода:

MaterialAlertDialogBuilder(context, R.style.Theme_MyApp_Dialog_Alert)
    .setTitle("Title")
    .setMessage("This is message.")
    .setPositiveButton(R.string.ok) { _, _ -> }
    .show()

Как видите, я использую собственную тему.

<style name="Theme.MyApp.Dialog.Alert" parent="ThemeOverlay.MaterialComponents.MaterialAlertDialog">
    <!-- attributes here -->
</style>

Проблема в том, что некоторые атрибуты не работают.Например textColor.Поэтому вопрос заключается в том, как изменить цвет текста основного текста или заголовка в MaterialAlertDialog?

. Я использую новейшую версию компонентов материалов - 1.1.0-alpha07.

PS.

* 1020.* Я не уверен, какая тема должна быть родительской.В Material Theme Builder они используют @style/ThemeOverlay.MaterialComponents.Dialog.Alert, что фактически дает "старый" вид диалогов.

1 Ответ

1 голос
/ 05 июля 2019

Измените стиль, как показано ниже

<style name="Theme.MyApp.Dialog.Alert" parent="ThemeOverlay.MaterialComponents.MaterialAlertDialog">
    <item name="materialAlertDialogTitleTextStyle">@style/MaterialAlertDialogText</item>
</style>

Создайте MaterialAlertDialogText стиль и установите textColor

<style name="MaterialAlertDialogText" parent="@style/MaterialAlertDialog.MaterialComponents.Title.Text">
    <item name="android:textColor">@color/yourTextColor</item>
</style>
...