国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

探索 單個Fragment實現沉浸式,其余Fragment不實現的解決辦法

miguel.jiang / 2663人閱讀

摘要:弊端需要給每個不想實現沉浸式的頁面新增多余且相似的代碼。弊端需要變化的值,導致頁面有細微的滑動。

需求

MainActivity中包含五個Fragment,但是只要求HomeFragment實現沉浸式,其余Fragment不實現沉浸式,保持原來的模樣

注意:僅Android21及其以上系統支持

思路

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

思路1 思路步驟

使MainAcitivity實現沉浸式,此時所有Fragment頁面都將實現沉浸式;

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

為每一個Fragment實現新增View的高度和背景色。

實現步驟

1、使MainAcitivity實現沉浸式:

StatusBarUtil.setStatusBarTransparent(activity);

2、 為每一個不需要實現沉浸式的Fragment頁面新增一個View:

3、為每一個不需要實現沉浸式的Fragment實現新增View的高度和背景色:

StatusBarUtil.setStatusViewAttr(view, activity);
優缺點

優點:可控性高;并且在布局文件中靜態實現了高度和背景色,不需要實時計算(此點相對于 思路2 而言)。

弊端:需要給每個不想實現沉浸式的Fragment頁面新增多余且相似的代碼。

思路2 思路步驟

使MainAcitivity實現沉浸式,此時所有Fragment頁面都將實現沉浸式;

獲得DecorView之后,動態的為其子View設置topMargin,實現Fragment頁面切換時沉浸

實現步驟

1、使MainAcitivity實現沉浸式:

StatusBarUtil.setStatusBarTransparent(activity);

2、使默認第一個顯示的Fragment頁面實現沉浸式:

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

3、使其它Fragment不實現沉浸式,在實現沉浸式效果的Fragment中加入下面代碼:

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

優點:可集成為一個工具類,不需要在Fragment中新增代碼。

弊端:需要變化topMargin的值,導致頁面有細微的滑動。

思路3

還在搜索中......

源碼

StatusBar

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76749.html

相關文章

  • Android 沉浸解析和輪子使用

    摘要:前言我們先一起來回顧一下實現沉浸式狀態欄的一般套路。從以上版本才是真正的可以設置沉浸式體驗,但也僅僅是操作狀態欄和導航欄的顯示與隱藏。屬性解釋設置了表明會負責系統的繪制,繪制透明背景的系統狀態欄和導航欄,然后用和的顏色填充相應的區域。 前言 我們先一起來回顧一下實現沉浸式狀態欄的一般套路。在Android上,關于對StatusBar(狀態欄)的操作,一直都在不斷改善,并且表現越來越好,...

    bingo 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<