沉浸式狀態列 狀態列的實現封裝類

2021-08-10 22:00:40 字數 2439 閱讀 3075

沉浸式狀態列有兩種方式:一:當狀態列下面是一張的時候,設定上面狀態列為透明,這樣狀態列就會被覆蓋(這裡為方便我設定了乙個button顏色為#ff4081)

首先看下沒有設定沉浸式狀態列時的狀態列:

設定狀態列的顏色**如下:

if (build.version.sdk_int 

>= build.version_codes.lollipop

) if (build.version.sdk_int

>= build.version_codes.kitkat

)

結果如下圖:

第二種方式:指定狀態列為某個顏色:

if (build.version.sdk_int 

>= build.version_codes.lollipop

) else if (build.version.sdk_int

>= build.version_codes.kitkat

)

private view createstatusbarview(int color) 

private int

getstatusbarheight()

效果如下:

這裡我將方法進行了封裝,完整**:

/**

** 狀態列的實現封裝類

* - 完成以下兩種功能:

* 1,設定乙個純色,適配4.4並以上,需要處理5.0並以上的陰影效果

* 2,當頂部是乙個,上移到狀態列

*/public class

statusbarutils

else if

(build.version.

sdk_int

>= build.version_codes.

kitkat

) }

/*** 當頂部是時,是顯示到狀態列上

*@param

activity

*/public static void

setimage

(activity activity)

else

}/*** 設定根布局引數,讓跟布局引數適應透明狀態列**/

private static void

setrootview

(activity activity)

/*** 獲取狀態列的高度

*@param

acitivity

*@return

*/private static int

getstatusbarheight

(activity acitivity)

/*** 生成乙個和狀態列大小相同的矩形條

*@param

activity

需要設定的activity

*@param

color

狀態列顏色值

*@return

狀態列矩形條

*/private static

view

createstatusbarview

(activity activity

, int

color)

public static boolean

setmiuistatusbardarkmode

(activity activity

, boolean

darkmode)

catch

(exception e)

return false;}}

Android透明狀態列 沉浸式狀態列

注意 android版本 4.4此方法有效 第一步 在activity的布局檔案中,根布局中加入以下第5 7行 第二步 新建類kitkatutils.class package cn.powerthink.djt.utils import android.annotation.suppresslin...

沉浸式狀態列

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...