带有样式的Android appcompat对话框

时间:2015-08-07 11:59:00

标签: android dialog android-appcompat android-styles

我在android中使用以下代码创建了一个Dialog。

<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="colorAccent">@color/red</item>
    <item name="android:textColorPrimary">@color/black</item>
    <item name="android:background">@color/background</item>
    <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
    <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
</style>

这是MyAlertDialogStyle.xml。

Interval getInterval(Instant epoch, Duration duration, Instant now) {
    long epochMillis = epoch.getMillis();
    long durationMillis = duration.getMillis();

    long millisSinceEpoch = now.getMillis() - epochMillis;        
    long periodNumber = millisSinceEpoch / durationMillis;
    long start = epochMillis + periodNumber * durationMillis;
    return new Interval(start, start + durationMillis);
}

按对话框中的项目时没有任何效果。在xml文件中按下时,如何更改对话框的背景颜色?

此外,有没有办法知道我可以在xml文件中修改的项目列表?(例如colorAccent,backgound,textColorPrimary ...)

2 个答案:

答案 0 :(得分:0)

您可以尝试使用MaterialDialogs库。它易于使用,你可以通过按钮/收音机/等获得回调,即使它是自定义视图。

(链接:https://github.com/afollestad/material-dialogs/

答案 1 :(得分:0)

尝试下一个代码:

        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorAccent">@color/accent</item>
        <item name="android:dialogTheme">@style/DialogStyle</item>
        <item name="android:alertDialogTheme">@style/DialogStyle</item>
    </style>

        <style name="DialogStyle" parent="Theme.AppCompat.Light.Dialog">
        <item name="colorAccent">@color/accent</item>
        <item name="android:windowTitleStyle">@style/DialogTitleStyle</item>
        <item name="android:textColorAlertDialogListItem">@color/text_color</item>
        <item name="android:textAppearanceButton">@style/DialogWindowTextButton</item>
<item name="android:windowBackground">@android:color/transparent</item>
    </style>

       <!--Colors and Styles-->
    <color name="bar">#FF5722</color>
    <color name="status_bar">#E64A19</color>
    ...
    ...