2015-02-15 24 views
15
alertDialog = new ProgressDialog(this);       
alertDialog.setMessage(getResources().getString(R.string.loader)); 
alertDialog.setCancelable(false); 
alertDialog.show(); 

Bunu yaptığımda, yeşil daire bunun yanında kelime yükleme ile de ortaya çıkıyor. i ilerleme iletişim KULLANIMI dont ve ben sayfadaki bir progressbar kullanmak Ancak zaman i daire pembe renk olarak almanın çözümdür Ya benim styles.xmlMalzeme Tasarımı progressdialog

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

aşağıda tanımlandığı gibi pembe bir renk alır sayfadaki ilerleme çubuğunda?

cevap

11

API 21+ için malzeme ilerleme iletişim kutusunu renklendirmek için aşağıdaki stili tanımlayabilirsiniz. Alt platformları destekliyorsanız bunun values-v21'un altında olması gerektiğini unutmayın. <item name="android:colorAccent"> API 21 + için ise

<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 içindir. Malzeme ilerleme iletişim kutuları, yeni v22.1 Destek lib AppCompatDialog ile bile AppCompat ile çalışmaz.

Chris Banes'in yanıtını "Kötü bir desen" oldukları için İlerleme İletişim Kutularını geri göndermeyeceğini belirten here numaralı yanıtı görebilirsiniz.

+0

Bu konuda adil yorum Dialog bir "kötü model" dir. Önerilen alternatif nedir? – Zapnologica

+5

@ Zapnologica, geliştirici kılavuzuna göre: [_ "Bununla birlikte, yükleme veya belirsiz ilerlemeyi belirtmeniz gerekirse, Progress & Activity için tasarım yönergelerini uygulamanız ve düzeninizde bir ProgressBar kullanmanız gerekir." _] (Http://developer.android.com/guide/topics/ui/dialogs.html) yerine bir "ProgressDialog". Yani temelde bir “ProgressBar” yerleştirdi ve gerektiği gibi sakla/göster. ProgressDialog'un kötü bir kalıp olma eğiliminde olduğuna katılıyorum (özellikle de ispat edilemezse) ama keşke her yerde daha açık ve net olmasını isterdim. Belki de ProgressDialog dokümanlarından bahseder. –

+3

Chris Banes'in gönderisiyle ilgili bir yorumun bağlantısı artık ölü gibi görünüyor. – stkent

2

Bu soru biraz eski ama AppCompat, kullanıyorsanız sadece bu özelliği ekleyin: senin tarzında bu yardımcı olur

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

Umut

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

!

İlgili konular