一. 沉浸式狀態(tài)欄無(wú)非就兩種
- 第一種:設(shè)置狀態(tài)欄透明宵统,布局會(huì)往上撐
狀態(tài)欄全透明或半透明娜氏,然后activity布局會(huì)向上移拳缠,撐到狀態(tài)欄里面
(API>=19時(shí),才會(huì)往上撐)贸弥,如下圖所示:
沉浸式撐到狀態(tài)欄.png
對(duì)于這種沉浸式
- 在布局頭部
加上一個(gè)跟ToolBar顏色相近的View
即可窟坐,高度為25dp(API>=19)或0dp(API<19)。(狀態(tài)欄高度為25dp绵疲,并且API>=19的時(shí)候哲鸳,activity才會(huì)往上撐) - 或者使用一張
大圖在布局頂部
,圖片往上撐到狀態(tài)欄里面盔憨,也是挺美的徙菠。
- 第二種:只是設(shè)置顏色的狀態(tài)欄
直接設(shè)置狀態(tài)欄的顏色,還可設(shè)置透明度郁岩,布局不會(huì)往上撐
婿奔,例如下圖(當(dāng)然,我圖片里設(shè)置的顏色很不協(xié)調(diào)):
改變狀態(tài)欄顏色.png
這種情況只要把狀態(tài)欄顏色設(shè)置成跟ToolBar一樣的或者相近的顏色
即可问慎。
二. 按布局情況選擇合適的沉浸式模式
- 如果布局的頂部是一張大ImageView萍摊,或者是顏色不規(guī)則的toolbar,則一般選擇第一種沉浸式。
- 如果布局的頂部是純顏色的ToolBar如叼,則一般選擇第二種沉浸式冰木。
三. 如何實(shí)現(xiàn)沉浸式狀態(tài)欄
說(shuō)了這么多沉浸式狀態(tài)欄的種類(lèi)和選擇,那么到底如何實(shí)現(xiàn)沉浸式狀態(tài)欄呢?
這里推薦一個(gè)GitHub上的開(kāi)源框架:https://github.com/niorgai/StatusBarCompat
它把上面提到的兩種方式封裝得很好踊沸。
它提供了以下Api:
//設(shè)置狀態(tài)欄的顏色
StatusBarCompat.setStatusBarColor(Activity activity, int color)
//添加alpha值
StatusBarCompat.setStatusBarColor(Activity activity, int statusColor, int alpha)
//透明狀態(tài)欄
StatusBarCompat.translucentStatusBar(activity);
//SDK >= 21時(shí), 取消狀態(tài)欄的陰影
StatusBarCompat.translucentStatusBar(Activity activity, boolean hideStatusBarBackground);
//為 CollapsingToolbarLayout 設(shè)置顏色
StatusBarCompat.setStatusBarColorForCollapsingToolbar(
Activity activity,
AppBarLayout appBarLayout,
CollapsingToolbarLayout collapsingToolbarLayout,
Toolbar toolbar,
int statusColor)
它具體集成方式這里就不作介紹了歇终,個(gè)人一直推薦集成開(kāi)源框架還是上GitHub或者官方網(wǎng)站看比較好。