Material Design progressdialog

女生的网名这么多〃 提交于 2019-12-04 16:35:26

问题


 alertDialog = new ProgressDialog(this);                          
 alertDialog.setMessage(getResources().getString(R.string.loader));
 alertDialog.setCancelable(false);
 alertDialog.show();

Simply when I do this, green circle shows up with the word loading besides it. However when i DONT USE progress dialog, and i use a progressbar on the page I get a pink color as i have defined the below in my styles.xml

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

What is the solution of getting the circle pink color as in the progress bar on page?


回答1:


For API 21+ you can define the following style to colour the material progress dialog. Note that this should be under values-v21 if you support lower platforms.

<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>

<item name="colorAccent"> is for AppCompat whereas <item name="android:colorAccent"> is for API 21+. Material progress dialogs don't work with AppCompat, even with the new v22.1 Support lib AppCompatDialog.

You can see Chris Banes' answer here stating that he will not backport Progress Dialogs because they are "a bad pattern".




回答2:


This question is a bit old, but if you are using AppCompat, just add this attribute:

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

In your style

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

Hope this helps!



来源:https://stackoverflow.com/questions/28526793/material-design-progressdialog

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!