97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

當(dāng)前位置: 移動互聯(lián)網(wǎng)學(xué)院 > Android開發(fā) > Android制作沉浸式狀態(tài)欄
Android制作沉浸式狀態(tài)欄 時(shí)間:2017-09-25     來源:移動互聯(lián)網(wǎng)學(xué)院

引言:在開發(fā)Android應(yīng)用的時(shí)候,相信很多人都會發(fā)現(xiàn)絕大部分的APP都會使用沉浸式狀態(tài)欄,例如QQ,如下圖箭頭所指。

  沉浸式狀態(tài)欄確切的說應(yīng)該叫做透明狀態(tài)欄。一般情況下,狀態(tài)欄的底色都為黑色,而沉浸式狀態(tài)欄則是把狀態(tài)欄設(shè)置為透明或者半透明。這種設(shè)計(jì)可以把手機(jī)的狀態(tài)欄設(shè)置成與APP頂部相同的顏色,這就使得切換APP時(shí),整個界面就好似切換到了與APP相同的風(fēng)格樣式一樣。在內(nèi)容展示上會顯得更加美觀。

今天我們來看看實(shí)現(xiàn)沉浸式狀態(tài)欄的兩種方式:

系統(tǒng)提供的方法

1) 在需要設(shè)置沉浸式狀態(tài)欄的Activity中設(shè)置兩個參數(shù)并設(shè)置一個背景圖片,方便查看效果。 

2) 設(shè)置好參數(shù)后在MainActivity中編寫一個方法initState來初始化沉浸式狀態(tài)欄。需要注意的是,因?yàn)槌两綘顟B(tài)欄是在Android4.4的時(shí)候出現(xiàn)的,所以只有4.4及以后的版本才能使用。代碼中對當(dāng)前系統(tǒng)進(jìn)行判斷,符合要求(即系統(tǒng)是4.4或以上的版本)則設(shè)置成透明狀態(tài)欄。

3) 在setContentView(R.layout.activity_main)方法前取消APP默認(rèn)的頂欄,并且調(diào)用沉浸式狀態(tài)欄的方法。

4) 效果對比圖:

  非沉浸式

 沉浸式

怎么樣,效果是不是很不錯。。!但在測試時(shí)會出現(xiàn)兩種情況:

① 當(dāng)我沒有在布局中設(shè)置clipToPadding為true的時(shí)候,會對應(yīng)用自定的頂部Toolbar進(jìn)行拉伸;

② 當(dāng)我在布局中兩個參數(shù)都進(jìn)行設(shè)置后,頂部狀態(tài)欄變成了白色。

接下來的另一種方法就可以解決以上的問題。

動態(tài)適應(yīng)狀態(tài)欄高度設(shè)置布局

因?yàn)榈谝徊繒霈F(xiàn)的拉伸問題,所以我在Toolbar上方添加了一個隱藏LinearLayout,動態(tài)設(shè)置與狀態(tài)欄等高,抵消Toolbar拉伸。

1) 在xml布局的頂部添加一個隱藏布局。

2) 代碼中判斷系統(tǒng)版本,并通過反射設(shè)置隱藏布局高度。



3) 上述步驟完成后同樣也是在Activity中的setContentView()后進(jìn)行調(diào)用即可。

效果圖:

好啦,今天分享的內(nèi)容也就到此全部結(jié)束,謝謝大家的支持!