方法一:
設(shè)置activity的theme屬性隱藏標(biāo)題欄和狀態(tài)欄,然后在onWindowFocusChanged方法中調(diào)用方法
mLCDChangeLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
mLCDChangeLayout可以是該activity布局中的任意一個(gè)控件,前一個(gè)flags主要實(shí)現(xiàn)隱藏NavigationBar的功能,后一個(gè)flags實(shí)現(xiàn)觸摸不會(huì)彈出NavigationBar,只有下拉狀態(tài)欄等一些系統(tǒng)手勢(shì)時(shí)才會(huì)彈出。
方式二:
activity屬性不用設(shè)置,直接在activity中加入如下方法:
@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if( hasFocus ) { hideNavigationBar(); } } private void hideNavigationBar() { // TODO Auto-generated method stub final View decorView = getWindow().getDecorView(); final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; decorView.setSystemUiVisibility(flags); decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUiVisibilityChange(int visibility) { if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) { decorView.setSystemUiVisibility(flags); } } }); }然后在onWindowFocusChanged方法中調(diào)用hideNavigationBar的方法即可,原理與方式一類(lèi)似。
以上這篇activity全屏實(shí)現(xiàn)沉浸式效果,并且單獨(dú)觸摸不會(huì)彈出虛擬按鍵的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選