Материальный дизайн 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>
Надеюсь, это поможет!