沉浸式狀態列

2021-08-18 16:19:47 字數 1041 閱讀 2450

狀態列透明方法:

getwindow().addflags(windowmanager.layoutparams.

flag_translucent_status);或

<itemname="android:windowtranslucentstatus">trueitem>
第一種方法是在**中設定,在setcontentview()之前設定。

第二種方法在activity的主題theme檔案中設定。

這兩種方法更多的使用者4.4版本的沉浸式狀態列效果,其主要是將狀態列的顏色設定為透明,自動將當前視窗內的布局整體上移乙個statusbar的高度。所以,在4.4版本上做沉浸式,需要單獨增加乙個狀態列高度的view,用來佔位。但是這種思路的方案在6.0上也能夠實現。有兩種方案:

方案一

private void sinkstatusbar1()  else 

// }

}

方案二

private void sinkstatusbar2()  else 

viewgroup rootview = (viewgroup) ((viewgroup) findviewbyid(android.r.id.content)).getchildat(0);

//rootview不會為狀態列留出狀態列空間

viewcompat.setfitssystemwindows(rootview,true);

rootview.setcliptopadding(true);

// }

}

兩種方案的區別,乙個是在decorview節點下增加乙個佔位view。而方案一是直接在decorview的content布局節點內增加乙個佔位view。

沉浸式狀態列

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

沉浸式狀態列

在 第一行 中提到了一種實現方式 使用 android fitssystemwindows true 屬性來設定。不過還需要將 android color transparent設定一下,將狀態列設定為透明狀態,不過android statusbarcolor屬性是從api21開始有的,需要建立vl...