जैसा कि शीर्षक कहता है, मैं डिफ़ॉल्ट बार के बजाय एक अंधेरे रंग के रंग के लिए स्टेटस बार आइकन का रंग कैसे बदलूं।एंड्रॉइड में स्टेटस बार अधिसूचना आइकन 'रंग/टिंट कैसे बदलें (marshmallow और 23+ से ऊपर)?
से
जैसा कि शीर्षक कहता है, मैं डिफ़ॉल्ट बार के बजाय एक अंधेरे रंग के रंग के लिए स्टेटस बार आइकन का रंग कैसे बदलूं।एंड्रॉइड में स्टेटस बार अधिसूचना आइकन 'रंग/टिंट कैसे बदलें (marshmallow और 23+ से ऊपर)?
से
स्थिति बार आइकन 'के लिए करने के लिए डिफ़ॉल्ट सफेद के बजाय एक अंधेरे टिंट है, में निम्नलिखित टैग को जोड़ने आपका styles.xml
(या values-v23/styles.xml
में अधिक सटीक) फ़ाइल:
<item name="android:windowLightStatusBar" tools:targetApi="23">true</item>
आप किसी भी View
को निर्धारित कर उस कार्यावधि में झंडा बदल सकते हैं:
View yourView = findViewById(R.id.your_view);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (yourView != null) {
yourView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
}
आप परिवर्तन रीसेट इस तरह ध्वज साफ़ करना चाहते हैं:
yourView.setSystemUiVisibility(0);
नीचे नमूना कोड है, पोर्ट्रेट & लैंडस्केप के बीच स्विच करते समय स्टेटस बार रंग बदलें। पोर्ट्रेट मोड: लाइट बार, डार्क आइकन; लैंडस्केप मोड: गहरा बार, हल्का आइकन; थीम: "Theme.AppCompat.Light"
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Window window = getWindow();
View decorView = window.getDecorView();
if(Configuration.ORIENTATION_LANDSCAPE == newConfig.orientation) {
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.setStatusBarColor(Color.parseColor("#55000000")); // set dark color, the icon will auto change light
}
} else {
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.setStatusBarColor(Color.parseColor("#fffafafa"));
}
}
}
यदि आप प्रकाश स्थिति बार सेट करने की प्रोग्रामेटिक विधि का उपयोग करते हैं, तो क्या इसे नियमित अंधेरे संस्करण में बदलने का कोई तरीका है? – Andrew
यदि यह काम नहीं करता है, तो आप 'दृश्य' itslef को पुनर्जीवित करने का प्रयास कर सकते हैं जिस पर ध्वज सेट किया गया था। मेरे लिए, जब प्राथमिकता बदल जाती है तो मैं सिर्फ 'फ्रैगमेंट' को फिर से बना देता हूं। दुर्भाग्य से इस का कारण बनता है '; ' rootView.setSystemUiVisibility (rootView.getSystemUiVisibility() & ~ View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR): – Sazid
<आइटम नाम = "एंड्रॉयड: windowLightStatusBar" उपकरण: targetApi = "मीटर"> सच –