日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

全屏沉浸模式ImmersiveMode

2019-11-10 20:12:30
字體:
供稿:網(wǎng)友

在寫播放器的時候,遇到了關(guān)于全屏模式的坑。翻閱了網(wǎng)上一些資料和google 官方的demo后,終于把坑填完了。

全屏主要的干擾就是 頂部狀態(tài)欄stateBar和部分手機的虛擬按鍵NavigationBar。

這是google demo的源碼

    /**     * Detects and toggles immersive mode (also known as "hidey bar" mode).     */    public void toggleHideyBar() {        // BEGIN_INCLUDE (get_current_ui_flags)        // The UI options currently enabled are rePResented by a bitfield.        // getSystemUiVisibility() gives us that bitfield.        int uiOptions = getActivity().getWindow().getDecorView().getSystemUiVisibility();        int newUiOptions = uiOptions;        // END_INCLUDE (get_current_ui_flags)        // BEGIN_INCLUDE (toggle_ui_flags)        boolean isImmersiveModeEnabled =                ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions);        if (isImmersiveModeEnabled) {            Log.i(TAG, "Turning immersive mode mode off. ");        } else {            Log.i(TAG, "Turning immersive mode mode on.");        }        // Navigation bar hiding:  Backwards compatible to ICS.        if (Build.VERSION.SDK_INT >= 14) {            newUiOptions ^= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;        }        // Status bar hiding: Backwards compatible to Jellybean        if (Build.VERSION.SDK_INT >= 16) {            newUiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN;        }        // Immersive mode: Backward compatible to KitKat.        // Note that this flag doesn't do anything by itself, it only augments the behavior        // of HIDE_NAVIGATION and FLAG_FULLSCREEN.  For the purposes of this sample        // all three flags are being toggled together.        // Note that there are two immersive mode UI flags, one of which is referred to as "sticky".        // Sticky immersive mode differs in that it makes the navigation and status bars        // semi-transparent, and the UI flag does not get cleared when the user interacts with        // the screen.        if (Build.VERSION.SDK_INT >= 18) {            newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;        }        getActivity().getWindow().getDecorView().setSystemUiVisibility(newUiOptions);        //END_INCLUDE (set_ui_flags)    }

這個demo比較簡單,不做詳細(xì)的解釋。就簡單的介紹下Flag等意思。

getActivity().getWindow().getDecorView() //獲取當(dāng)前頁面的跟布局。View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;//控制NavigationBar的隱藏于顯示。View.SYSTEM_UI_FLAG_FULLSCREEN;//控制stateBar的隱藏與顯示。View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;這個標(biāo)簽比較有趣。其實這個標(biāo)簽有兩個:View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY 和 View.SYSTEM_UI_FLAG_IMMERSIVE。這兩個標(biāo)簽都必須和View.SYSTEM_UI_FLAG_HIDE_NAVIGATION、View.SYSTEM_UI_FLAG_FULLSCREEN 一起使用。

下面分為3中情況:

1、只使用View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 和 View.SYSTEM_UI_FLAG_FULLSCREEN 。

這種情況下,在進(jìn)入全屏模式后,用戶有任何操作,SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN 就會被清除。狀態(tài)欄和虛擬按鍵會一直可見。除非再次設(shè)置SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN。在狀態(tài)欄和虛擬按鍵顯示變化時會調(diào)用View.OnSystemUiVisibilityChangeListener。

2、SYSTEM_UI_FLAG_IMMERSIVE 配合View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 和 View.SYSTEM_UI_FLAG_FULLSCREEN使用。

用戶操作不會清除SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN。會一直保持全屏模式。顯示切換時也會觸發(fā)View.OnSystemUiVisibilityChangeListener。還有一個區(qū)別就是 ,全屏模式時,從原本狀態(tài)欄或者虛擬按鍵的位置 響屏幕內(nèi)部滑動,會清除SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN,保持可見狀態(tài),并且也會觸發(fā)View.OnSystemUiVisibilityChangeListener監(jiān)聽。

3.SYSTEM_UI_FLAG_IMMERSIVE_STICKY配合View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 和 View.SYSTEM_UI_FLAG_FULLSCREEN使用。

用戶操作不會清除SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN。會一直保持全屏模式。顯示切換時也會觸發(fā)View.OnSystemUiVisibilityChangeListener。,全屏模式時,,從原本狀態(tài)欄或者虛擬按鍵的位置 響屏幕內(nèi)部滑動, 狀態(tài)欄 和 虛擬按鍵欄會暫時可見,一段時間后自動隱藏。與SYSTEM_UI_FLAG_IMMERSIVE 不同的是,因為是臨時的顯示,所以不會觸發(fā)View.OnSystemUiVisibilityChangeListener。可能說的有點混亂,可以參考下下面的表格。

個人覺得使用toggleHideyBar()來控制有點不順手,所以拆分成了showBar()和hideBar()。

    public void showBar(){        int uiOptions = getWindow().getDecorView().getSystemUiVisibility();        int newUiOptions = uiOptions;        boolean isImmersiveModeEnabled =                ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions);        if (isImmersiveModeEnabled) {            Log.i(TAG, "Turning immersive mode mode off. ");                        //先取 非 后再 與, 把對應(yīng)位置的1 置成0,原本為0的還是0                        if (Build.VERSION.SDK_INT >= 14) {                newUiOptions &= ~View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;            }                       if (Build.VERSION.SDK_INT >= 16) {                newUiOptions &= ~View.SYSTEM_UI_FLAG_FULLSCREEN;            }                    if (Build.VERSION.SDK_INT >= 18) {                newUiOptions &= ~View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;            }            getWindow().getDecorView().setSystemUiVisibility(newUiOptions);        }    }    public void hideBar() {        // The UI options currently enabled are represented by a bitfield.        // getSystemUiVisibility() gives us that bitfield.        int uiOptions = getWindow().getDecorView().getSystemUiVisibility();        int newUiOptions = uiOptions;        boolean isImmersiveModeEnabled =                ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions);        if (!isImmersiveModeEnabled) {            Log.i(TAG, "Turning immersive mode mode on. ");                  if (Build.VERSION.SDK_INT >= 14) {                newUiOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;            }                     if (Build.VERSION.SDK_INT >= 16) {                newUiOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN;            }            if (Build.VERSION.SDK_INT >= 18) {                newUiOptions |= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;            }            getWindow().getDecorView().setSystemUiVisibility(newUiOptions);        }    }暫時就寫這么多吧。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
在线欧美日韩精品| 精品久久在线观看| 在线欧美一级视频| 亚洲经典中文字幕| 国产乱国产乱300精品| 久久99蜜桃精品久久久久小说| 欧美二三四区| 91精品国产91久久久久久青草| 中文字幕在线观看欧美| 一区二区三区精品99久久| 亚洲一级网站| www.久久久精品| 91精品国产综合久久精品app| 欧美日韩国产91| 国产福利一区二区在线精品| 日韩中文字幕第一页| 中文字幕欧美亚洲| 久久精品国产2020观看福利| 亚洲一区中文| 精品成人久久av| 日韩在线视频网| 午夜一区二区三区免费| 精品欧美不卡一区二区在线观看| 一区二区在线看| 午夜国产福利一区二区| 日本a级黄色| 国产超级va在线视频| 在线视频第一页| 久久网站免费观看| 日韩免费精品视频| 精品在线91| 亚洲一区视频在线观看视频| 一级一片免费视频| 中文字幕精品亚洲| 在线三级av| 日韩免费精品视频| 日韩中文字幕在线视频播放| 免费精品国产自产拍在| 免费视频一区三区| 欧美日韩国产91| 国产色在线视频| 欧美高清一区| 顶级网黄在线播放| 91精品国产综合久久久久久漫画| 欧美日韩三级在线观看| 日本一级一片免费视频| 国产乱国产乱300精品| 日韩欧美中文字幕公布| 91精品国产91久久久久| 日韩亚洲欧美中文高清在线| 免费精品国产自产拍观看| 一区二区三区鲁丝不卡| 成人久久在线| 中文字幕无线码一区| 日韩国产欧美三级| 亚洲乱码在线观看| 中文字幕 欧美日韩| 精品日韩在线| 亚洲高清在线免费| 日韩精品在线看| 国产高清一区| 亚洲第一中文字幕在线观看| 最新日韩中文字幕| 午夜少妇久久久久久久久| 欧美日韩综合在线免费观看| av中文在线播放| 国产欧美日韩精品综合| 国产视频三级在线观看播放| 国产一区精品在线| 精品福利二区三区| 日韩欧美中文字幕视频| 在线一区二区三区精品| 欧美日韩综合在线免费观看| 在线日韩欧美| 精品国产99| 二区三区不卡不卡视频| 精品久久91| a在线观看免费视频| 红桃视频亚洲| 久久精品一二三| 国产丝袜在线播放| 日韩欧美亚洲视频| 亚洲羞羞网站| 日韩欧美国产黄色| 日韩激情一区| 国产成人精品综合网站| 日韩精品―中文字幕| 欧美不卡视频一区发布| 精品视频久久| 国产午夜精品全部视频播放| 日韩中文在线视频| 欧美日韩中国免费专区在线看| 国产日韩电影| 亚洲午夜久久| 欧美国产91| 77777_亚洲午夜久久多人| 日韩在线不卡| 精品免费久久久| 精品福利二区三区| 中文字幕在线欧美| 日韩不卡在线观看| 婷婷精品进入| 国产小视频免费在线网址| 日本中文字幕在线观看| 免费中文字幕日韩欧美| 亚洲三级av| 欧美日韩国产观看视频| 亚洲一区中文字幕在线观看| 亚洲视频在线观看日本a| 成人无遮挡免费网站视频在线观看| 91精品国产亚洲| 国产福利一区在线观看| 午夜精品一区二区三区免费视频| 欧美日韩国产首页| 国产高清在线一区| 91精品国产综合久久久久| 日韩在线一区二区| 亚洲小说春色综合另类网蜜桃| 国产欧美日韩高清| 中文字幕综合在线| 国产三级做爰在线观看| 精品国产99久久久久久| 亚洲三级av| 黄色国产在线| 成年人看的羞羞网站| 欧美日韩在线视频首页| wwwwww国产| 国产激情在线| 国产福利在线播放| 国产午夜精品全部视频播放| 国产欧美日韩视频| 97久久精品| 7799精品视频天天看| 欧美日韩视频免费| 男人的天堂网av| 久久精品久久精品亚洲人| 国产不卡一区| 中文字幕亚洲欧美| 91精品视频在线| 日韩精品在线中文字幕| 欧美日韩亚洲国内综合网俺| 亚洲中文字幕一区| 三级精品视频| 日韩在线二区| 日韩一级精品| 亚洲久草视频| 欧美日韩99| 国产 欧美在线| 中文字幕在线观看国产| 在线不卡一区二区| 精品1区2区3区| 精品久久久久久无| 日韩免费久久| 91xxx在线观看| 欧美一级日韩一级| 欧美日韩国产综合视频在线观看| 欧美日韩成人一区二区| 免费精品国产自产拍在| 国产黄色在线播放| 中文字幕日韩欧美| 91av久久久| 一级片免费网站| wwwwww国产| 国产裸体歌舞团一区二区 | 欧美日韩国产123区| 最近高清中文在线字幕在线观看1| 欧美日韩综合视频| 91精品国产综合久久久蜜臀粉嫩 | 欧美日韩国产大片| 久久99久久久欧美国产| 91精品蜜臀在线一区尤物| 国产xxx在线| 亚洲福利在线观看| 91精品国产综合久久久久久| 在线一区二区三区精品| 亚洲精品中文字幕乱码三区| 午夜一区二区视频| 国产黄色在线网站| 国产99精品| 亚洲高清在线观看一区| 激情婷婷亚洲| 91久久精品午夜一区二区| 亚洲福利在线观看| 成年人黄国产| 一区二区三区久久| 欧美日韩久久久| 国产一区成人| 91精品国产全国免费观看 | 亚洲免费精品| 色偷偷一区二区三区| 国产一区在线精品| 欧美日韩亚洲国内综合网| 国产高清精品二区| 不卡一区2区| 国产高清一级片| 欧美日韩在线中文字幕| 国产95在线|亚洲| 欧美一卡2卡3卡4卡| 国产免费电影网站入口| 日韩在线视频一区二区三区| 中文字幕日韩高清| 麻豆一区二区99久久久久| 欧美黄页在线免费观看| 亚洲乱码中文字幕| 精品乱子伦一区二区| 亚洲羞羞网站| av中文在线播放| 日韩a一区二区| 一区二区精品区| 国产一区精品| 天堂在线中文资源| 亚洲欧美小说国产图片| 国产99亚洲| 日韩精品在线看| 日韩欧美在线精品| 国产又粗又猛又爽又黄91精品| 日韩亚洲欧美中文三级| 欧美日韩国产专区| 国产在线导航| 久久久精品网| 日韩欧美在线中文字幕| 欧美成人一区二区| 亚洲一区中文在线| 久精品在线观看| 欧美日韩亚洲天堂| 国产黄在线观看| 日本精品专区| 色偷偷一区二区三区| 国产欧美日韩在线播放| 男人的天堂网av| 久久精品久久精品亚洲人| 亚洲一区在线观看网站| 欧美va亚洲va日韩∨a综合色| 天天综合天天| 欧美国产综合在线V| 91极品视频在线观看| 亚洲高清不卡一区| 欧美日韩国产一区在线| 欧美日韩国产综合网| 99pao成人国产永久免费视频| 久久精品电影| 国产黄色在线看| 在线观看一区日韩| 久久久久久欧美| 美女黄a一级视频| 中文字幕国产亚洲| 91精品国产91久久久久久不卡| 91精品国产乱码久久蜜臀| 日韩欧美在线影院| 国产在线高潮| 欧美二区在线观看| 国产欧美日韩久久| 国产黄色一区| 精品在线观看一区| 欧美日韩午夜在线视频| 国产成人精品三级| 日韩一级精品| 在线看欧美日韩| 美女黄a一级视频| 国产免费久久| 欧美日韩精品不卡| 国产色综合网| 国产在线观看精品| 高清一区二区| av免费网站在线| 久久久久黄色| 日韩国产亚洲欧美| av最新网址| 欧美一级日韩一级| 99久久婷婷| 中文字幕在线视频第一页| 欧美 日韩 国产在线| 久久久精品午夜少妇| 91精品视频在线| 国产欧美日韩综合| 一本一道综合狠狠老| 午夜国产福利在线观看| 日韩中文字幕第一页| 日韩视频在线一区二区| 日韩在线中文| 日韩精品在线免费观看| 国产欧美一级| 中文字幕精品视频在线| 日韩免费久久| 五月天久久比比资源色| 在线日韩欧美| 国产亚洲人成a一在线v站| 日韩亚洲不卡在线| 成人福利一区| 日本视频久久久| 人妻一区二区三区免费| 精品成人久久av| 国产福利三区| 国产嫩草影院久久久久| 最近中文字幕第一页| wwwwww国产| 免费高清视频日韩| 欧美日韩一二| 欧美日韩在线播放三区四区| 天天综合色天天| 精品久久久久久无| 最近中文字幕在线中文高清版| 亚洲一区在线视频观看| 国产在线播放一区二区| 日韩欧美国产1| 韩国v欧美v日本v亚洲| 最近高清中文在线字幕在线观看1| 日韩中文字幕在线播放| 精品成人久久av| 亚洲成av人片| 欧美日韩一级视频| 亚洲a一级视频| 日韩亚洲欧美中文字幕| 亚洲综合在线小说| 91欧美日韩在线| 日韩欧美国产一二三区| 99视频在线看| 亚洲一区资源| 日本不卡免费高清视频| 精品在线观看一区| 精品久久久久久无| 成人xxxx| 中文字幕日韩免费视频| 一本一道综合狠狠老| 欧美在线视频二区| 久久婷婷国产| 在线免费视频一区二区| 日本精品福利视频| 久久视频免费看| 日韩中文字幕在线视频观看| 91蜜桃在线视频| 国产在线第一页| 日韩精品欧美在线| 91精品在线免费观看| 久久精品一二三| 国产偷国产偷亚洲清高网站 | 欧美三级日韩三级| 免费视频国产一区| 免费国产成人看片在线| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 亚洲综合日韩| 欧美片网站免费| 久久夜色精品国产欧美乱极品| 日韩欧美在线网站| www.中文字幕在线观看| 久久久91精品| 免费看日韩精品| 日韩综合精品| 精品视频资源站| 一本久久a久久精品亚洲| 中文字幕在线精品| 国产一二三视频| 欧美专区中文字幕| 中文字幕国产视频| 欧美日韩国产首页在线观看| a视频在线播放| 久久久综合精品| 国产黄色在线免费观看| 韩国一区二区av| 麻豆精品视频入口| 中文字幕亚洲在| 欧美日韩国产系列| 91精品免费观看| 欧美日韩精品在线播放| av不卡免费看| 日韩在线中文视频| 国产不卡在线观看视频| 欧美日韩在线不卡视频| 久久精品国产91精品亚洲| 欧美日韩中文字幕一区| 欧美国产日韩在线播放| 久久人人88| 一本大道一区二区三区| 91精品国产91久久久久久不卡| 在线视频你懂得一区| 日韩高清不卡一区| 中文天堂资源在线| 亚洲欧洲国产视频| 国产乱码午夜在线视频| 久草视频在线看| 一级片在线免费看| 亚洲一区在线观看视频| 欧美专区中文字幕| 日韩av中文字幕一区| 日韩精品视频免费播放| 不卡中文一二三区| 国产免费不卡av| 麻豆一区二区99久久久久| 国产v日产∨综合v精品视频| 搞黄在线观看| 中文字幕在线观看网址| 国产在线视频不卡| 欧美三级免费观看| 国产欧美日韩亚州综合| 日韩欧美在线影院| 久久精品不卡| 日韩在线不卡| 日韩一二三四区| 在线视频一区二区三区在线播放| 日韩精品 欧美|