android沉浸式狀態列

2021-09-24 06:49:55 字數 2116 閱讀 8435

在**中設定

if (build.version.sdk_int >= build.version_codes.kitkat)

複製**

通過檢視windowmanager.layoutparams.flag_translucent_status的官方注釋,有這麼一句話

when this flag is enabled for a window, it automatically sets * the system ui visibility flags and * .

也可以這麼設定

view decorview = getwindow().getdecorview();

decorview.setsystemuivisibility(view.system_ui_flag_fullscreen | view.system_ui_flag_layout_stable);

複製**

當然也可以在values-v19/styles.xml,values-v21/styles.xml和values-v23/styles.xml中設定

"android:windowtranslucentstatus">true

複製**

這個屬性會使布局下移乙個狀態列高度的距離,避免布局侵入到狀態列

1. 如果布局頭部是乙個imageview

這種情況下,imageview侵入到狀態列,如果沒有大的影響,其實可以不做處理.否則,建議做出的,其內容能盡量下移一下,避免被狀態列遮擋過多.android5.0以後可以通過palette獲取bitmap的顏色,來給預留的view設定顏色.

1.1 新增依賴

implementation 'com.android.support:palette-v7:27.1.1'

複製**

1.2 獲取顏色並設定給預留view
//預留view

final view insetview = null;

//頭部imageview

final bitmap bitmap = null;

palette.from(bitmap).generate(new palette.paletteasynclistener() else }}

});複製**

2.如果布局頭部是個標題欄

2.1 在布局頭部放置乙個0dp高度的view

"match_parent"

android:layout_height="match_parent"

android:layout_orientation="vertical">

"match_parent"

android:layout_height="0dp"

android:id="@+id/insetview"

>

"match_parent"

android:id="@+id/content"

android:layout_height="0dp"

android:layout_weight="1">

複製**

2.2 在**裡獲取狀態列高度
/**

* 獲取狀態列高度

* @param context

* @return

*/protected

intgetstatusbarheight

(context context)

return result;

}複製**

2.3 設定預留view的高度和顏色
protected

void

setstatusheightandbackgroundcolor

(int height ,int color)

}複製**

以上這樣處理,在小公尺8劉海螢幕上也能完美適配 各大廠手機適配位址

oppo

vivo

識別小公尺手機

miui6沉浸式狀態列

miui 9 & 10「狀態列黑色字元」實現方法變更通知

Android沉浸式狀態列

完成沉浸式其實網上有很多的辦法 我這裡面只提供一種但是我感覺這種方式很自由,在styles裡面 stylename parent itemname colorprimary color colorbaseitem itemname colorprimarydark color colorprimar...

Android沉浸式狀態列

市場上,現階段很流行android沉浸式開發,但是限於google api的限制,所以此特性只能針對android4.4,github上目前開源的systembartint能夠很好的實現此特性。android 4.4 特有屬性,android 5.0以上機型,預設開啟。1 利用android stu...

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

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