国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

三步實現沉浸式狀態欄淺析(即狀態欄與APP同色)

2019-11-09 18:55:50
字體:
來源:轉載
供稿:網友

本篇實現的是沉浸式狀態欄。先明確下概念,什么是狀態欄?直接上圖:

/

什么是沉浸式狀態欄?示例圖如下:

非沉浸式狀態欄:

/

沉浸式狀態欄:/

其實,實質上就是使手機狀態欄的顏色改變,使其成為自己想要的顏色。如果把它設置成和APP主色調相同,這樣看上去就會好看許多。至于叫法,網上都這么叫,就不用深究它了。下面介紹如何實現,其實很簡單,只需三步:

前提:建立的安卓工程必須是API 19以上的才行,也就是Android4.4版本以上。

步驟1:

在布局文件的最外層布局上加上兩個屬性:

android:clipToPadding="true"

android:fitsSystemWindows="true"

示例:

/

步驟2:

在Activity的onCreate()方法中加入兩行代碼:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明狀態欄

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); //透明導航欄

步驟3:

在Activity的onCreate()方法中加入一行代碼:

requestWindowFeature(Window.FEATURE_NO_TITLE); //設置無標題欄

注意:此句代碼一定要加在setContentView(R.layout.activity_main);之前。

示例:

/

通過以上三步簡單的操作,這樣就可以實現狀態欄變色啦!

備注:

一、其實,只需要加入

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明狀態欄

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); //透明導航欄

這兩行代碼就能改變狀態欄顏色。

但是,會出現狀況。

狀況1(如果布局文件中不加 android:clipToPadding="true" android:fitsSystemWindows="true" 這兩個屬性),可以看到,標題欄會整體往上移動,占據狀態欄的空間。也就是將狀態欄當成了APP標題欄的一部分。如下圖:

/

狀況2(如果onCreate()方法中不加 requestWindowFeature(Window.FEATURE_NO_TITLE); 這句代碼),可以看到,布局多了系統自帶的title欄,一般情況下這是不需要的。如下圖:

/

二、在步驟3中,requestWindowFeature(Window.FEATURE_NO_TITLE); 這句代碼的設置可以不設置在onCreate()方法中,設置成配置文件的theme樣式也是可以的,但是要和你的Activity相匹配,示例如下:

/

 

三、狀態欄的顏色,就是布局文件中最外層的布局的背景顏色。但是,如果最外層的Layout設置寬高都是 match_parent,而其子布局未設置任何背景顏色,

/

這樣的話,就會使整塊屏幕(包括狀態欄)都是一個顏色,

如下圖:

/

當然,有時候我們需要將除了標題區域以外的內容區域設置成和APP主色不同的顏色。這時,只需要將需要改變背景顏色的子布局設置一下背景顏色就行啦。

/

運行效果如下:

/

通常,這樣就是我想要的效果。每個人需求不同,大家自行發揮。

附轉載鏈接:http://www.2cto.com/kf/201603/496608.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江北区| 临夏市| 农安县| 磴口县| 达州市| 古田县| 盐源县| 木里| 宽甸| 新龙县| 安远县| 彰化市| 荆门市| 什邡市| 东乌珠穆沁旗| 锡林郭勒盟| 阜宁县| 鱼台县| 武陟县| 美姑县| 奈曼旗| 寿光市| 武城县| 莲花县| 兴文县| 遵义县| 定西市| 靖江市| 元谋县| 阳曲县| 阳春市| 玉屏| 龙海市| 邵武市| 鄂伦春自治旗| 美姑县| 奈曼旗| 祁门县| 乐至县| 高雄市| 宽城|