2014-10-27 7 views
6

मैं एक LoginActivity जहां मैं एक AppCompat विषय इस तरह का उपयोग करें:गलत रंगीन टाइटलबार के साथ AppCompat संवाद थीम - बग?

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

मुझे पता है कि इस पोस्ट के रूप में गूगल अभी तक संवाद के लिए AppCompat पुस्तकालय में सामग्री विषय-वस्तु नहीं जोड़ा गया हूँ, इसलिए मैं इसे वापस गिर जाएगी ग्रहण होलो पर इसके बजाय, यह मैं क्या मिलता है:

enter image description here

ध्यान रखें, मैं AppCompattoolBar उपयोग नहीं कर रहा। Activity में, मैं ActionBar का संदर्भ भी नहीं दे रहा हूं। जो आप ऊपर देखते हैं वह डिफ़ॉल्ट व्यवहार है, फिर भी मैं यह नहीं समझ सकता कि यह कहां से आ रहा है। क्या यह शायद एक बग है?

(इसके अलावा, EditText क्षेत्रों अनुप्रयोग के लिए प्राथमिक रंग के साथ रंग के होते हैं नहीं किया जा रहा।)

+0

"मुझे पता है कि इस पोस्ट के रूप में गूगल अभी तक AppCompat पुस्तकालय में सामग्री विषय-वस्तु नहीं जोड़ा गया हूँ" => आप घोषणा चूक गए! [AppCompat v21 - प्री-लॉलीपॉप उपकरणों के लिए सामग्री डिज़ाइन!] (Http://android-developers.blogspot.in/2014/10/appcompat-v21-material-design-for-pre.html) –

+0

@PareshMayani ओह, क्षमा करें , मैंने गलत टाइप किया, मुझे उस पृष्ठ को कई बार पढ़ने में कोई संदेह नहीं है! मैंने सुना, उन्होंने अभी तक संवाद में एमडी विषय नहीं जोड़ा है। (अब जब मैं इसके बारे में सोचता हूं, क्या यह डायलॉग थीम्स के लिए भी गिनती है जो 'संवाद' ऑब्जेक्ट से अलग है?) – KickingLettuce

+0

'Theme.AppCompat.Light.Dialog' निश्चित रूप से 'एंड्रॉइड' बढ़ाता है: Theme.Material.Light.Dialog' । अपनी संवाद गतिविधि बनाने के लिए आप किस कोड का उपयोग करते हैं? – ianhanniballake

उत्तर

6

नोट: संभवतः सबसे अच्छा समाधान

के लिए अपने अंतिम संपादित देखते हैं कि क्या इसके लायक है के लिए, मैं ऐसा लगता है कि यह एक बग है। हालांकि, मैंने पाया कि एक वैध वर्कअराउंड @style/Base.Theme.AppCompat.Light.Dialog.FixedSize का उपयोग करना है। आपके स्क्रीनशॉट के आधार पर मुझे लगता है कि यह आपके लिए भी काम करेगा। हालांकि, मैंने अभी तक पैलेट रंग का परीक्षण नहीं किया है।

जो मैं अपने परीक्षण में बता सकता हूं उससे, यह भूरे रंग की सीमा को बढ़ाता है जबकि आप अभी भी AppCompat और v21 का उपयोग करने की अनुमति देते हैं।

संपादित करें: एक तरफ प्रभाव यह अब प्रकट होता है कि सभी संवाद गतिविधियां एक ही आकार हैं, जो आपके लिए काम नहीं कर सकती हैं। इसके अलावा, मैं पता लगा नहीं किया है शीर्षक को निकालने का तरीका - requestWindowFeature और Window.FEATURE_NO_TITLE साथ supportRequestWindowFeature लगता

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

भले ही मैंने पहले और super.onCreate के बाद और निश्चित रूप से setContentView

से पहले यह कोशिश की है कारण हो करने के लिए

संपादित करें # 2: एक्सएमएल थीमिंग कार्यों के माध्यम से शीर्षक को हटा रहा है, और चूंकि आपके पास कोई शीर्षक नहीं है, इसके बारे में चिंता करने के लिए कोई विचित्र ग्रे बॉक्स नहीं है, जिसका अर्थ है कि आप फिक्स्ड साइज सेटिंग को छोड़ सकते हैं और संवाद इसकी सामग्री को लपेट देगा जैसा कि उसने किया था पहले के संस्करण।

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

# 3 संपादित करें: तुम भी बस धूसर पृष्ठभूमि को दूर कर सकते हैं - यह सबसे अच्छा समाधान हो सकता है, क्योंकि यह बेस आवश्यकता नहीं है। उपसर्ग:

<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> 
संबंधित मुद्दे