android沉浸式狀態(tài)欄的總結(jié)

總結(jié):
1.從android4.4版本開始可以實(shí)現(xiàn)沉浸式狀態(tài)欄的功能,4.4和5.0以上的效果會(huì)有點(diǎn)不一樣,所以可以選擇使用在view來(lái)代替狀態(tài)欄背景,這樣就一致了;
2.在白色背景的情況下默認(rèn)狀態(tài)欄是白色,需要設(shè)置狀態(tài)欄和圖標(biāo)顏色,而在6.0以上則是可以設(shè)置狀態(tài)欄的圖標(biāo)字體的顏色的,然而魅族和小米是有另外自己的字體修改api的,所以這個(gè)修改字體深淺需要原生和魅族小米三個(gè)一起設(shè)置;

3.在代碼中實(shí)現(xiàn)上述代碼是因?yàn)閲?guó)內(nèi)有些 rom 如果單純?cè)?style 文件中設(shè)置 windowTranslucentStatus 可能導(dǎo)致設(shè)置無(wú)效。所以在 Activity 中再次設(shè)置一遍 。
4.單單設(shè)置windowTranslucentStatus 只是半透明的效果,有的機(jī)型是灰色的半透明,有的則是全透明,單獨(dú)設(shè)置狀態(tài)欄顏色,可使用以下代碼實(shí)現(xiàn)沉浸式效果:

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            getWindow().setStatusBarColor(Color.TRANSPARENT);// SDK21

5.在5.0以后可以通過(guò)設(shè)置主題顏色來(lái)設(shè)置一些app的默認(rèn)顏色;
以下是一張主題顏色的圖片:


顏色.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容