您好,登錄后才能下訂單哦!
有的時候我們在做全屏顯示或者視頻全屏播放時候,有些手機有底部的虛擬按鍵,如下圖所示:
在開發中我們會遇到需要隱藏虛擬按鍵或者沉浸式虛擬按鍵的需求。
上圖為沉浸式虛擬按鍵效果。
上圖為隱藏虛擬按鍵效果。
那我們先說如何隱藏虛擬按鍵:
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的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。