मैं अपने ऐप के लिए स्टेटस बार का रंग बदलना चाहता हूं ताकि यह काले आइकनों के साथ सफेद हो (सफेद आइकन के साथ डिफ़ॉल्ट काले के बजाय)। ऐसा करने का कोई रास्ता नहीं है?
मैं अपने ऐप के लिए स्टेटस बार का रंग बदलना चाहता हूं ताकि यह काले आइकनों के साथ सफेद हो (सफेद आइकन के साथ डिफ़ॉल्ट काले के बजाय)। ऐसा करने का कोई रास्ता नहीं है?
जवाबों:
Android M (api level 23) के साथ आप इसे थीम से android:windowLightStatusBar
विशेषता के साथ प्राप्त कर सकते हैं ।
संपादित करें:
जैसा कि Pdroid ने उल्लेख किया है, यह भी प्रोग्रामेटिक रूप से प्राप्त किया जा सकता है:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
ग्रे आइकन के साथ सफेद स्थिति पट्टी बनाना संभव है जैसे कि एसडीके> = 23 के लिए इस तरह से ( डॉक्स देखें ):
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowLightStatusBar">true</item>
</style>
अपनी शैलियों में। xml और colorPrimary
सफेद या प्रोग्रामेटिक रूप से सेट करें :
getWindow().setStatusBarColor(Color.WHITE);
SDK >= 23
लेकिन @being_sohelkhan ने किसी कारण से मेरे मूल उत्तर को संपादित किया है ... stackoverflow.com/posts/46897243/revisions
बस कोटलिन पर मेरी गतिविधि में जोड़ा गया:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
window.statusBarColor = Color.WHITE
}
इसे आप शैली में जोड़ें
<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} के अनुरूप।
आप इसे कोटलिन में इस तरह से उपयोग कर सकते हैं
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
onCreate()
इससे पहले ही फोन कर लेंsetContentView()
ऐसा कोई तरीका नहीं है जब तक कि आपके पास मैन्युअल रूप से अनुकूलित करने के लिए पूरे रोम का नियंत्रण न हो। जो मैं आपको करने का सुझाव देता हूं वह है, अपने विषय के माध्यम से स्टेटस बार रंग के लिए एक हल्के भूरे रंग का उपयोग करें जैसे कि Google ड्राइव करता है।
संपादित करें: कृपया इसे एंड्रॉइड एम में परिवर्तित होने के लिए @ ट्रेकर जवाब का उल्लेख करें।
मैंने बस यही इस्तेमाल किया
parent="Theme.AppCompat.Light.NoActionBar"
app:theme="@style/AppThemeWithoutActionBarwithwhitehed"
android:background="#fff"
मेरी भी यही समस्या थी।
मैंने देखा कि जब मैं 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>