Материальный дизайн progressdialog

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

Просто, когда я это делаю, зеленый круг появляется вместе с загрузкой слова. Однако, когда я DONT USE прогресс диалог, и я использую progressbar на странице, я получаю розовый цвет, как я определил ниже в моих styles.xml

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

Каково решение вопроса о розовом цвете круга, как в строке выполнения на странице?

Ответы

Ответ 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>

<item name="colorAccent"> предназначен для AppCompat, тогда как <item name="android:colorAccent"> предназначен для API 21+. Диалоги о ходе работы не работают с AppCompat, даже с новой v22.1 поддержкой lib AppCompatDialog.

Вы можете увидеть ответ Криса Банеса здесь, в котором говорится, что он не будет отображать диалоги прогресса, потому что они "плохой шаблон".

Ответ 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>

Надеюсь, это поможет!