成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

探索 單個(gè)Fragment實(shí)現(xiàn)沉浸式,其余Fragment不實(shí)現(xiàn)的解決辦法

miguel.jiang / 2708人閱讀

摘要:弊端需要給每個(gè)不想實(shí)現(xiàn)沉浸式的頁(yè)面新增多余且相似的代碼。弊端需要變化的值,導(dǎo)致頁(yè)面有細(xì)微的滑動(dòng)。

需求

MainActivity中包含五個(gè)Fragment,但是只要求HomeFragment實(shí)現(xiàn)沉浸式,其余Fragment不實(shí)現(xiàn)沉浸式,保持原來(lái)的模樣

注意:僅Android21及其以上系統(tǒng)支持

思路

前提:沉浸式只能作用在Activity上!

思路1 思路步驟

使MainAcitivity實(shí)現(xiàn)沉浸式,此時(shí)所有Fragment頁(yè)面都將實(shí)現(xiàn)沉浸式;

為每一個(gè)Fragment頁(yè)面新增一個(gè)View,此處需要注意布局方式(FrameLayout布局可能比較難處理);

為每一個(gè)Fragment實(shí)現(xiàn)新增View的高度和背景色。

實(shí)現(xiàn)步驟

1、使MainAcitivity實(shí)現(xiàn)沉浸式:

StatusBarUtil.setStatusBarTransparent(activity);

2、 為每一個(gè)不需要實(shí)現(xiàn)沉浸式的Fragment頁(yè)面新增一個(gè)View:

3、為每一個(gè)不需要實(shí)現(xiàn)沉浸式的Fragment實(shí)現(xiàn)新增View的高度和背景色:

StatusBarUtil.setStatusViewAttr(view, activity);
優(yōu)缺點(diǎn)

優(yōu)點(diǎn):可控性高;并且在布局文件中靜態(tài)實(shí)現(xiàn)了高度和背景色,不需要實(shí)時(shí)計(jì)算(此點(diǎn)相對(duì)于 思路2 而言)。

弊端:需要給每個(gè)不想實(shí)現(xiàn)沉浸式的Fragment頁(yè)面新增多余且相似的代碼。

思路2 思路步驟

使MainAcitivity實(shí)現(xiàn)沉浸式,此時(shí)所有Fragment頁(yè)面都將實(shí)現(xiàn)沉浸式;

獲得DecorView之后,動(dòng)態(tài)的為其子View設(shè)置topMargin,實(shí)現(xiàn)Fragment頁(yè)面切換時(shí)沉浸

實(shí)現(xiàn)步驟

1、使MainAcitivity實(shí)現(xiàn)沉浸式:

StatusBarUtil.setStatusBarTransparent(activity);

2、使默認(rèn)第一個(gè)顯示的Fragment頁(yè)面實(shí)現(xiàn)沉浸式:

StatusBarUtil.createStatusView(activity);
StatusBarUtil.hideStatusView(activity, true);

3、使其它Fragment不實(shí)現(xiàn)沉浸式,在實(shí)現(xiàn)沉浸式效果的Fragment中加入下面代碼:

@Override
public void onHiddenChanged(boolean hidden) {
    super.onHiddenChanged(hidden);
    if (hidden) {
        StatusBarUtil.hideStatusView(activity, false);
    } else {
        StatusBarUtil.hideStatusView(activity, true);
    }
}
優(yōu)缺點(diǎn)

優(yōu)點(diǎn):可集成為一個(gè)工具類,不需要在Fragment中新增代碼。

弊端:需要變化topMargin的值,導(dǎo)致頁(yè)面有細(xì)微的滑動(dòng)。

思路3

還在搜索中......

源碼

StatusBar

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/76749.html

相關(guān)文章

  • Android 沉浸解析和輪子使用

    摘要:前言我們先一起來(lái)回顧一下實(shí)現(xiàn)沉浸式狀態(tài)欄的一般套路。從以上版本才是真正的可以設(shè)置沉浸式體驗(yàn),但也僅僅是操作狀態(tài)欄和導(dǎo)航欄的顯示與隱藏。屬性解釋設(shè)置了表明會(huì)負(fù)責(zé)系統(tǒng)的繪制,繪制透明背景的系統(tǒng)狀態(tài)欄和導(dǎo)航欄,然后用和的顏色填充相應(yīng)的區(qū)域。 前言 我們先一起來(lái)回顧一下實(shí)現(xiàn)沉浸式狀態(tài)欄的一般套路。在Android上,關(guān)于對(duì)StatusBar(狀態(tài)欄)的操作,一直都在不斷改善,并且表現(xiàn)越來(lái)越好,...

    bingo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<