7 0以上版本沉浸式狀態列解決

2021-08-28 19:29:52 字數 560 閱讀 6635

在android7.0以上版本的手機中,發現沉浸式狀態列不好使了,用以前的寫法,狀態列會有一層黑色的半透明遮罩

具體現象

原因在7.0以上,狀態列顏色是由系統動態運算得出的,因此我們給它設定透明色也是沒用的。

解決辦法

加入判斷邏輯,通過getwindow().getdecorview()可以獲取到這個decorview類的物件,然後通過反射修改這個物件的成員msemitransparentstatusbarcolor變數值,這個變數值就是運算得出的狀態列顏色。

具體**如下:

if

(build.version.sdk_int >= build.version_codes.n)

catch

(exception e)

}

沉浸式狀態列

1.沉浸式狀態列,向下相容到android4.4。因為5.0以後對狀態列做了新的改變,5.0及其以上可以直接在主題中設定顏色,或者呼叫window類中的setstatusbarcolor int color 來實現。2.4.4到5.0系統可以通過 windowtranslucentstatus這一特...

沉浸式狀態列

還好擼主機智,直接判斷你的android版本,根據版本設定導航欄的高度,是和尚就念經,是驢子就拉磨,下面是擼主的 true animated barstyle light content networkactivityindicatorvisible 導航欄,用的功能強大的第三方庫 native b...

沉浸式狀態列

狀態列透明方法 getwindow addflags windowmanager.layoutparams.flag translucent status 或 itemname android windowtranslucentstatus trueitem 第一種方法是在 中設定,在setcont...