在写界面的时候 然后发现在界面最底下的几行文字 正好被虚拟导航栏遮挡住了,不滑动还看不到底下的文字,所以想隐去这些导航栏。
采用下面的代码将DecorView中的属性设置为隐藏 navigation,我这里注销掉了全屏的属性 ,按需添加or删除属性吧
11 && Build.VERSION.SDK_INT < 19) { // lower api
View v = this.getWindow().getDecorView();
if(v!=null){
v.setSystemUiVisibility(View.GONE);
}
} else if (Build.VERSION.SDK_INT >= 19) {
//for new api versions.
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY/* | View.SYSTEM_UI_FLAG_FULLSCREEN*/;
if (decorView != null) {
decorView.setSystemUiVisibility(uiOptions);
}
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
" data-snippet-id="ext.c635ae4a92490f41cf801e12d12759e7" data-snippet-saved="false" data-codota-status="done">` <span class="hljs-keyword">protected</span> <span class="hljs-keyword">void</span> <span class="hljs-title">hideBottomMenu</span>() {
<span class="hljs-comment">//隐藏虚拟按键</span>
<span class="hljs-keyword">if</span> (Build.VERSION.SDK_INT > <span class="hljs-number">11</span> && Build.VERSION.SDK_INT < <span class="hljs-number">19</span>) { <span class="hljs-comment">// lower api</span>
View v = <span class="hljs-keyword">this</span>.getWindow().getDecorView();
<span class="hljs-keyword">if</span>(v!=<span class="hljs-keyword">null</span>){
v.setSystemUiVisibility(View.GONE);
}
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (Build.VERSION.SDK_INT >= <span class="hljs-number">19</span>) {
<span class="hljs-comment">//for new api versions.</span>
View decorView = getWindow().getDecorView();
<span class="hljs-keyword">int</span> uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY<span class="hljs-comment">/* | View.SYSTEM_UI_FLAG_FULLSCREEN*/</span>;
<span class="hljs-keyword">if</span> (decorView != <span class="hljs-keyword">null</span>) {
decorView.setSystemUiVisibility(uiOptions);
}
}
}`
我们业务逻辑只要window获取焦点就执行
@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { mDecorView.setSystemUiVisibility(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); } }
💬 评论