2014-10-27 39 views
6

Ben böyle bir AppCompat temasını kullandığımız bir LoginActivity var:AppCompat Çizim Tema Mis-renkli başlık çubuğu ile - Hata?

<activity 
      android:name=".LoginActivity" 
      android:theme="@style/Theme.AppCompat.Light.Dialog" 
      android:label="Login" /> 

Bu yazının olarak Google henüz diyaloglar için AppCompat kütüphanede Malzeme Temalar eklemedi farkındayım, bu yüzden geri düşecek kabul Holo'da. Bunun yerine, bu ne alıyorum:

enter image description here

, ben AppCompat toolBar kullanmıyorum unutmayın. Activity'da, ActionBar için bir başvuru bile yapmıyorum. Yukarıda gördüğünüz varsayılan davranıştır, ancak nereden geldiğini anlayamıyorum. Bu bir hata mı?

(Ayrıca, EditText alanlar uygulaması için birincil renk ile renklendirilmiş edilmiyor.)

+0

"Bu yazının olarak Google henüz AppCompat kitaplığında Malzeme Temalar eklemedi farkındayım" => Sen duyuru kaçırdılar! [AppCompat v21 - Pre-Lollipop Cihazları için Materyal Tasarımı!] (Http://android-developers.blogspot.in/2014/10/appcompat-v21-material-design-for-pre.html) –

+0

@PareshMayani Oh, üzgünüm , Yanlış yazılmış, hiç şüphesiz bu sayfayı birçok kez okudum! Duydum ki, henüz 'Dialog'larda M.D. temasını eklemediler. (Şimdi bu konuda düşünüyorum, hatta 'Dialog' Nesne farklı olan İletişim Temalar için sayılır mı?) – KickingLettuce

+0

'Theme.AppCompat.Light.Dialog' kesinlikle 'android: Theme.Material.Light.Dialog' uzatır . İletişim etkinliğinizi oluşturmak için hangi kodu kullanıyorsunuz? – ianhanniballake

cevap

6

Not: Ne olursa olsun için muhtemelen en iyi çözüm

için benim son düzenlemeyi görüyorum, Bunun bir böcek olduğunu düşün. Ancak, keşfettiğim geçerli bir geçici çözüm, @style/Base.Theme.AppCompat.Light.Dialog.FixedSize kullanmaktır. Ekran görüntüsüne dayanarak bunun sizin için de işe yarayacağını düşünüyorum. Ancak henüz palet renklendirmesini test etmedim.

Testlerimde anlatabildiğim kadarıyla, bu, gri sınırı genişletirken AppCompat ve v21'i kullanmanıza da izin veriyor.

Düzeltme: bir yan etki, artık tüm iletişim etkinliklerinin aynı boyutta olduğu ve sizin için işe yaramadığı görünüyor. Daha önce ve super.onCreate sonra ve kesinlikle setContentView

önce denedim rağmen

java.lang.RuntimeException: Unable to start activity ComponentInfo{myclass}: 
android.util.AndroidRuntimeException: requestFeature() must be called before adding content 

neden olmak Window.FEATURE_NO_TITLE ile requestWindowFeature ve supportRequestWindowFeature görünüyor - Ayrıca, başlık nasıl kaldırılacağını çözemedim

Düzenleme # 2: XML teması ile başlığın kaldırılması işe yarar ve endişeniz tutamayacak tuhaf bir gri kutu olmadığı için, FixedSize ayarını bırakabilirsiniz ve iletişim kutusu içeriğinin olduğu gibi önceki versiyonlar.

<style name="MyActivityDialogTheme" parent="Base.Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 

Düzenleme # 3: Ayrıca, sadece basitçe gri arka planı kaldırmak - bu Base gerektirmediğinden bu en iyi çözüm olabilir. önek:

<style name="MyTitledActivityDialogTheme" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowNoTitle">false</item> 
    <item name="android:windowTitleBackgroundStyle">@android:color/transparent</item> 
    <item name="windowActionBar">false</item> 
</style>