您好,登錄后才能下訂單哦!
有的時(shí)候我們?cè)谧鋈溜@示或者視頻全屏播放時(shí)候,有些手機(jī)有底部的虛擬按鍵,如下圖所示:
在開(kāi)發(fā)中我們會(huì)遇到需要隱藏虛擬按鍵或者沉浸式虛擬按鍵的需求。
上圖為沉浸式虛擬按鍵效果。
上圖為隱藏虛擬按鍵效果。
那我們先說(shuō)如何隱藏虛擬按鍵:
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); } }
主要是幾個(gè)標(biāo)簽的使用。那先看下這些標(biāo)簽的作用和含義吧。
當(dāng)使用了SYSTEM_UI_FLAG_IMMERSIVE_STICKY標(biāo)簽的時(shí)候,向內(nèi)滑動(dòng)的操作會(huì)讓系統(tǒng)欄臨時(shí)顯示,并處于半透明的狀態(tài)(沉浸式)。此時(shí)沒(méi)有標(biāo)簽會(huì)被清除,系統(tǒng)UI可見(jiàn)性監(jiān)聽(tīng)器也不會(huì)被觸發(fā),布局的大小不會(huì)被影響。如果用戶沒(méi)有進(jìn)行操作,系統(tǒng)欄會(huì)在一段時(shí)間內(nèi)自動(dòng)隱藏。
當(dāng)你使用SYSTEM_UI_FLAG_IMMERSIVE標(biāo)簽的時(shí)候,它是基于其他設(shè)置過(guò)的標(biāo)簽(SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN)來(lái)隱藏系統(tǒng)欄的。當(dāng)用戶向內(nèi)滑動(dòng),系統(tǒng)欄重新顯示并保持可見(jiàn)。但是布局大小會(huì)被虛擬按鍵的高度所影響。
如果你不想虛擬按鍵影響高度??梢杂萌缦拢?/strong>
用其他的UI標(biāo)簽(如SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION和SYSTEM_UI_FLAG_LAYOUT_STABLE)來(lái)防止系統(tǒng)欄隱藏時(shí)內(nèi)容區(qū)域大小發(fā)生變化是一種很不錯(cuò)的方法。你也需要確保Action Bar和其他系統(tǒng)UI控件同時(shí)進(jìn)行隱藏。下面這段代碼展示了如何在不改變內(nèi)容區(qū)域大小的情況下,隱藏與顯示狀態(tài)欄和導(dǎo)航欄。
那么如何顯示虛擬按鍵呢?往下看:
public static void showNavKey(Context context, int systemUiVisibility) {//getWindow().getDecorView().getSystemUiVisibility() 傳入0也可以 ((Activity) context).getWindow().getDecorView().setSystemUiVisibility(systemUiVisibility); }
以上這篇Android隱藏和沉浸式虛擬按鍵NavigationBar的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。