如何更改材质AlertDialog和ProgressDialog的微调器,文本和按钮颜色

时间:2014-11-21 02:01:30

标签: android themes

我的应用扩展了Theme.AppCompat.Light,并且材质风格的对话框显示为白色背景,黑色文字颜色和绿色按钮(ProgessDialog中的微调器也是绿色)。

我想更改文本的颜色和字体,以及按钮和微调器的颜色。

我该怎么做?

我发现了this帖子,但XML解决方案对我不起作用,其他答案是没有ProgressDialog的第三方库。

谢谢!

1 个答案:

答案 0 :(得分:1)

拥有全部"物质体验"你应该到处使用最新的AppCompat。而不是android.app.AlertDialog使用android.support.v7.app.AlertDialog来定位设备< 21。

只需按照以下方式正确设置AppTheme即可:

<style name="AppTheme" parent="Base.AppTheme">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>

    <!-- This is the interesting part -->
    <item name="android:dialogTheme">@style/AppTheme.Dialog</item>
    <item name="dialogTheme">@style/AppTheme.Dialog</item>
    <item name="android:alertDialogTheme">@style/AppTheme.Dialog</item>
    <item name="alertDialogTheme">@style/AppTheme.Dialog</item>
</style>

<!-- Style the dialog like the normal AppTheme -->
<style name="AppTheme.Dialog" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
</style>