2016-06-03 10 views
9

का उपयोग करते समय मैं स्वत: जनरेट तो जैसे android:theme के माध्यम से मेरी गतिविधि के AppTheme.NoActionBar लागू होते हैं:एंड्रॉयड स्थिति पट्टी पारदर्शी जब AppTheme.NoActionBar

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="mypackage"> 

    <application 
     ... 
     android:theme="@style/AppTheme"> 

     <activity 
      android:name=".MainActivity" 
      android:theme="@style/AppTheme.NoActionBar" /> 

    </application> 

</manifest> 

मेरे MainActivity है शीर्ष पर एक पारदर्शी स्टेटस बार के साथ प्रस्तुत किया जाता है, जिसमें अंत में एक सफेद पृष्ठभूमि होती है, और उस पर सफेद पाठ होता है। यदि डिवाइस चार्ज हो रहा है, तो यह देखने का एकमात्र प्रतीक है।

Transparent ActionBar

AppTheme.NoActionBar

यहाँ से पारदर्शी ActionBar मेरी मूल्यों/styles.xml है:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/> 

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/> 

</resources> 

दूसरी शैली में, आप AppTheme.NoActionBar देख सकते हैं, जो डिफ़ॉल्ट रूप से AppTheme विरासत में, हालांकि कहीं भी शैली में कहीं भी निर्दिष्ट नहीं है कि स्टेटस बार पारदर्शी होना चाहिए।

उत्तर

17

संभावना है कि, यदि आप इस समस्या का सामना करना पड़ा, तो आप एक फ़ोल्डर मान-V21 कहा जाता है और उस में एक फ़ाइल styles.xml कहा जाता है। यह फ़ाइल एपीआई 21+ (एंड्रॉइड 5.0+) का उपयोग कर उपकरणों के लिए स्टाइल को परिभाषित करती है। इस फ़ाइल में AppTheme.NoActionBar नाम की निम्न शैली भी शामिल होगी। जाना पहचाना?

मान-V21/styles.xml:

<resources> 
    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
     <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
     <item name="android:statusBarColor">@android:color/transparent</item> 
    </style> 
</resources> 

AppTheme.NoActionBarमूल्यों में परिभाषित किया गया था/styles.xml सवाल है, जो अभी भी मान्य है में प्रदान की जाती है, तथापि उस फ़ाइल के लिए ही प्रयोग किया जाता है एपीआई 21 के तहत डिवाइस । यदि आप कोड को देखते हैं, तो आप अंत में पारदर्शी शब्द को देखकर तुरंत समस्या की पहचान कर सकते हैं। बाईं ओर थोड़ा और हम statusBarColor और voila देखते हैं। यही मुद्दा है। यदि आप इस स्टाइल को अधिक अद्यतित उपयोगकर्ताओं के लिए प्रदान नहीं करते हैं तो आप आसानी से स्टाइल के उस को हटा सकते हैं।

मान-V21/styles.xml:

Fixed result

अच्छा ol 'अपारदर्शी स्थिति पट्टी

:

<resources> 
    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
     <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    </style> 
</resources> 

और यहाँ कि शैली को हटाने का परिणाम है

संबंधित मुद्दे