मैं ब्लैक आइकनों के साथ स्टेटस बार को सफेद कैसे बना सकता हूं?


86

मैं अपने ऐप के लिए स्टेटस बार का रंग बदलना चाहता हूं ताकि यह काले आइकनों के साथ सफेद हो (सफेद आइकन के साथ डिफ़ॉल्ट काले के बजाय)। ऐसा करने का कोई रास्ता नहीं है?


अपना डिफ़ॉल्ट विषय बदलें
रोहित ५२

मुझे इसे किस विषय में बदलना चाहिए, इससे अधिसूचना बार आइकन काले रंग में बदल जाएंगे?
जॉन

कस्टम थीम का उपयोग करें। देखने के साथ शुरू करने stackoverflow.com/questions/8024706/...
Rohit5k2

तो ऐसे ऐप्स के बारे में जो Android दिशानिर्देशों का पालन करते हैं और उनमें सफेद अधिसूचना चिह्न होते हैं, आप कैसे उम्मीद करते हैं कि उपयोगकर्ता आपके ऐप में होने पर उन्हें देख पाएंगे?
tyczj

2
लेकिन आप अन्य एप्लिकेशन संसाधनों का रंग नहीं बदल सकते हैं, वास्तव में लॉलीपॉप सभी आइकन को सफेद बनाता है कोई फर्क नहीं पड़ता कि क्या है
tyczj

जवाबों:


129

Android M (api level 23) के साथ आप इसे थीम से android:windowLightStatusBarविशेषता के साथ प्राप्त कर सकते हैं ।

संपादित करें:

जैसा कि Pdroid ने उल्लेख किया है, यह भी प्रोग्रामेटिक रूप से प्राप्त किया जा सकता है:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); 

2
क्या मैं इसे प्रोग्रामेटिक रूप से सेट कर सकता हूं?
बुशेल

@busylee मुझे लगता है कि आप अपने विषय का एक बच्चा बना सकते हैं और इसे वहां बदल सकते हैं और गतिविधि के साथ आवेदन कर सकते हैं ।getTheme.setTo (थीम दूसरा)
बगरातील

हाय @wrecker मैं अपने आवेदन अधिसूचना आइकन के साथ एक ही मुद्दा है। मैंने एंड्रॉइड को जोड़ा है: windowLightStatusBar = मेरे विषय में सच है और मैं इसे एंड्रॉइड एम में परीक्षण कर रहा हूं लेकिन जब मैं किसी तीसरे पक्ष के लॉन्चर एप्लिकेशन (नोवा लॉन्चर) का उपयोग करके थीम बदल रहा हूं तो सफेद अधिसूचना आइकन ग्रे में नहीं बदल रहा है। मैंने सभी संभव तरीकों की कोशिश की है लेकिन अभी तक इसे ठीक करने में सक्षम नहीं है। यदि आप मेरी मदद कर सकते हैं तो यह आभारी होगा।
सुजीत

1
@busylee हाँ आप इसे किसी भी समय निम्न विधि का उपयोग करके सेट कर सकते हैं: View.setSystemUiVisibility (View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); इसे उत्तर में जोड़ा जाना चाहिए
Pdroid

6
क्या होगा अगर मैं 22 या पिछले संस्करणों में उपयोग करना चाहता हूं?
धरा पटेल

46

ग्रे आइकन के साथ सफेद स्थिति पट्टी बनाना संभव है जैसे कि एसडीके> = 23 के लिए इस तरह से ( डॉक्स देखें ):

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowLightStatusBar">true</item>
</style>

अपनी शैलियों में। xml और colorPrimaryसफेद या प्रोग्रामेटिक रूप से सेट करें :

getWindow().setStatusBarColor(Color.WHITE);

2
यह एपीआई 23 में जोड़ा गया था, न कि 21 - डॉक्स
वादिम कोटोव

hey @VadimKotov वास्तव में मैंने लिखा था, SDK >= 23लेकिन @being_sohelkhan ने किसी कारण से मेरे मूल उत्तर को संपादित किया है ... stackoverflow.com/posts/46897243/revisions
Rammgarot

16

बस कोटलिन पर मेरी गतिविधि में जोड़ा गया:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
                window.statusBarColor = Color.WHITE
            }

7

इसे आप शैली में जोड़ें

<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>

android सेट करें : windowDrawsSystemBarBackgrounds to true * । यह एक ध्वज है जिसका विवरण नीचे दिया गया है:

यह इंगित करता है कि क्या यह विंडो सिस्टम बार के लिए पृष्ठभूमि को खींचने के लिए जिम्मेदार है। यदि सही और विंडो फ्लोटिंग नहीं है, तो सिस्टम बार एक पारदर्शी पृष्ठभूमि के साथ खींचे जाते हैं और इस विंडो में संबंधित क्षेत्र {@link android.R.attr # statusBarColor} और {@link android.R में निर्दिष्ट रंगों से भरे होते हैं। .attr # navigationBarColor}। {@Link android.view.WindowManager.LayoutParams # FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS} के अनुरूप।


2

आप इसे कोटलिन में इस तरह से उपयोग कर सकते हैं

 window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR

onCreate()इससे पहले ही फोन कर लेंsetContentView()


0

ऐसा कोई तरीका नहीं है जब तक कि आपके पास मैन्युअल रूप से अनुकूलित करने के लिए पूरे रोम का नियंत्रण न हो। जो मैं आपको करने का सुझाव देता हूं वह है, अपने विषय के माध्यम से स्टेटस बार रंग के लिए एक हल्के भूरे रंग का उपयोग करें जैसे कि Google ड्राइव करता है।

संपादित करें: कृपया इसे एंड्रॉइड एम में परिवर्तित होने के लिए @ ट्रेकर जवाब का उल्लेख करें।


1
यह एंड्रॉइड एम
अमीर डोरा

0

मैंने बस यही इस्तेमाल किया

  1. शैली में जनक सेट करें
parent="Theme.AppCompat.Light.NoActionBar"
  1. इसे xml में मेनू बार में जोड़ें
  app:theme="@style/AppThemeWithoutActionBarwithwhitehed"       
  android:background="#fff"

-1

मेरी भी यही समस्या थी।

मैंने देखा कि जब मैं RelativeLayout जैसे सामान्य लेआउट का उपयोग करता हूं तो यह काम नहीं करता है। लेकिन जब मैंने कॉर्डिनेटर की तरह समर्थन पुस्तकालय से उस पर स्विच किया, तो यह आखिरकार काम करना शुरू कर दिया। इसे इस्तेमाल करे।

  <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:context=".Activities.Activity">


        <android.support.v7.widget.Toolbar
            android:id="@+id/tb_activity"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />


    </android.support.design.widget.CoordinatorLayout>

<********* BELTH OTHERS ATTRIBUTES ************>

शैलियों

<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" parent="AppTheme">
    <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" />

और प्रकट में

<activity
            android:name=".Activities.MyActivity"
            android:label="Activity"
            android:theme="@style/AppTheme.NoActionBar">
        </activity>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.