这个是我自己的看官方问的总结的代码 亲身体现可以实现
在想调用的地方调用即可
这个代码片段隐藏了系统条
private void hideSystemUI() {
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);
}
这个代码也可以 都是我搜集和测试的一些方法
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);
}
}
另种实现方法
/*
* 隐藏软键盘(功能键)
*/
getWindow().getDecorView().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);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
转载出 http://www.jcodecraeer.com/a/anzhuokaifa/developer/2014/1117/1997.html
“虽然在android4.0之后就引入了虚拟键,但是google真正解决虚拟键所带来的困扰是在4.4版本之后。这篇文章就是教你如何彻底解决虚拟键带来的问题。在前面的几篇文章中我们已经知道如何同时隐藏状态栏和导航栏,按理说已经全屏了 ,但是前面的的这些方法都有个缺点,在全屏的时候用户不能有任何的交互行为,否则全屏效果将消失。(google这样设计的目的是为了让虚拟键能继续发挥它的作用,总要在全屏之后找个时机让虚拟键出来吧,但是这种时机其实不能满足绝大多数需求,这种设计是有问题的,因为显然我们有在全屏模式下也能交互的需求。)”
-译者注
在android4.4及以上版本中为setSystemUiVisibility()方法
引入了一个新的flag:SYSTEM_UI_FLAG_IMMERSIVE,它可以使你的app实现真正意义上的全屏体验。当
SYSTEM_UI_FLAG_IMMERSIVE
、SYSTEM_UI_FLAG_HIDE_NAVIGATION
和SYSTEM_UI_FLAG_FULLSCREEN三个flag一起使用的时候,可以隐藏状态栏与导航栏,同时让你的app可以捕捉到用户的所有触摸屏事件。
当沉浸式全屏模式启用的时候,你的activity会继续接受各类的触摸事件。用户可以通过在
原来区域的边缘向内滑动让系统栏重新显示。这个操作清空了状态栏与导航栏
SYSTE