【问题标题】:Material Design progressdialog材料设计进度对话框
【发布时间】:2015-04-16 02:24:12
【问题描述】:
 alertDialog = new ProgressDialog(this);                          
 alertDialog.setMessage(getResources().getString(R.string.loader));
 alertDialog.setCancelable(false);
 alertDialog.show();

当我这样做时,绿色圆圈会出现,旁边有加载这个词。但是,当我不使用进度对话框并在页面上使用进度条时,我得到粉红色,因为我在我的 styles.xml 中定义了以下内容

<item name="colorPrimary">@color/pink</item>
<item name="colorPrimaryDark">@color/pink</item>
<item name="colorAccent">@color/pink</item>

页面进度条中圈粉红色的解决方法是什么?

【问题讨论】:

    标签: android progressdialog


    【解决方案1】:

    对于 API 21+,您可以定义以下样式来为材质进度对话框着色。请注意,如果您支持较低的平台,这应该在values-v21 下。

    <style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:alertDialogTheme">@style/MyAlertDialog</item>
    </style>
    
    <style name="MyAlertDialog" parent="android:Theme.Material.Light.Dialog.Alert">
        <item name="android:colorAccent">@color/pink</item>
    </style>
    

    &lt;item name="colorAccent"&gt; 用于 AppCompat,而&lt;item name="android:colorAccent"&gt; 用于 API 21+。材料进度对话框不适用于 AppCompat,即使使用新的 v22.1 支持库 AppCompatDialog

    您可以看到 Chris Banes 的回答 here 表示他不会向后移植进度对话框,因为它们是“糟糕的模式”。

    【讨论】:

    【解决方案2】:

    这个问题有点老了,但是如果你使用的是 AppCompat, 只需添加此属性:

    <item name="android:tint">@color/my_color_accent</item>
    

    你的风格

    <style name="MaterialDialog" parent="Theme.AppCompat.Light.Dialog">
        <item name="android:tint">@color/my_color_accent</item>
    </style>
    

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      对我来说,这些(并且只有这些)样式属性有效:

      <item name="android:indeterminateTint">@color/colorAccent</item>
      <item name="android:progressTint">@color/colorAccent</item>
      

      【讨论】:

        猜你喜欢
        • 2015-07-17
        • 1970-01-01
        • 2015-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-02
        • 1970-01-01
        相关资源
        最近更新 更多