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

首頁 > 系統 > Android > 正文

Android隱藏和沉浸式虛擬按鍵NavigationBar的實現方法

2019-12-12 00:40:10
字體:
來源:轉載
供稿:網友

有的時候我們在做全屏顯示或者視頻全屏播放時候,有些手機有底部的虛擬按鍵,如下圖所示:

在開發中我們會遇到需要隱藏虛擬按鍵或者沉浸式虛擬按鍵的需求。

上圖為沉浸式虛擬按鍵效果。

上圖為隱藏虛擬按鍵效果。

那我們先說如何隱藏虛擬按鍵:

public static void hideNavKey(Context context) {    if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) {      View v = ((Activity) context).getWindow().getDecorView();      v.setSystemUiVisibility(View.GONE);    } else if (Build.VERSION.SDK_INT >= 19) {      //for new api versions.      View decorView = ((Activity) context).getWindow().getDecorView();      int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION          | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;      decorView.setSystemUiVisibility(uiOptions);    }  }

主要是幾個標簽的使用。那先看下這些標簽的作用和含義吧。

當使用了SYSTEM_UI_FLAG_IMMERSIVE_STICKY標簽的時候,向內滑動的操作會讓系統欄臨時顯示,并處于半透明的狀態(沉浸式)。此時沒有標簽會被清除,系統UI可見性監聽器也不會被觸發,布局的大小不會被影響。如果用戶沒有進行操作,系統欄會在一段時間內自動隱藏。

當你使用SYSTEM_UI_FLAG_IMMERSIVE標簽的時候,它是基于其他設置過的標簽(SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN)來隱藏系統欄的。當用戶向內滑動,系統欄重新顯示并保持可見。但是布局大小會被虛擬按鍵的高度所影響。

如果你不想虛擬按鍵影響高度。可以用如下:

用其他的UI標簽(如SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION和SYSTEM_UI_FLAG_LAYOUT_STABLE)來防止系統欄隱藏時內容區域大小發生變化是一種很不錯的方法。你也需要確保Action Bar和其他系統UI控件同時進行隱藏。下面這段代碼展示了如何在不改變內容區域大小的情況下,隱藏與顯示狀態欄和導航欄。

那么如何顯示虛擬按鍵呢?往下看:

 public static void showNavKey(Context context, int systemUiVisibility) {//getWindow().getDecorView().getSystemUiVisibility() 傳入0也可以    ((Activity) context).getWindow().getDecorView().setSystemUiVisibility(systemUiVisibility);  }

以上這篇Android隱藏和沉浸式虛擬按鍵NavigationBar的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临高县| 黑龙江省| 平乡县| 龙里县| 万安县| 安仁县| 滕州市| 曲麻莱县| 富民县| 敖汉旗| 泰和县| 穆棱市| 益阳市| 屏山县| 吉木萨尔县| 施甸县| 碌曲县| 临湘市| 萝北县| 嘉峪关市| 资溪县| 凌海市| 重庆市| 广昌县| 祁阳县| 柯坪县| 临泉县| 武宣县| 布尔津县| 海宁市| 平邑县| 南宁市| 防城港市| 陇南市| 通州市| 涿鹿县| 曲靖市| 扎赉特旗| 朝阳市| 鱼台县| 手游|