1.状态栏
下面两个添加和删除flag的函数可以动态使用,比如某个按键触发事件可以在点击的时候隐藏或者显示出来状态栏.
显示:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //显示状态栏
隐藏
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //隐藏状态栏
2.导航栏
显示和隐藏可以通过按钮事件动态触发
显示
if (getActionBar()!=null)
getActionBar().show();
隐藏
if (getActionBar() != null)
getActionBar().hide();
3.虚拟按键
int flag = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
getWindow().getDecorView().setSystemUiVisibility(flag);
参考
https://www.jianshu.com/p/08ff70c15667
对于setSystemUiVisibility的标志位有一个带图的解释
https://blog.youkuaiyun.com/zdj_develop/article/details/64920441
对几种状态隐藏方法的一个总结