学习笔记
程序员文章站
2022-03-29 17:53:40
覃某人的学习笔记(第一天)安卓开发,关于横屏与全屏显示今天遇到一个需求,需要在全屏的情况下进行界面设计。横屏横屏很简单,只用一句。//横屏显示 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);全屏显示全屏显示意味着需要隐藏掉状态栏和虚拟按键。这里我通过搜索引擎找到了解决方法。 //去掉Activity上面的状态栏 getWindow().setFlags(WindowManager.La...
覃某人的学习笔记(第一天)
安卓开发,关于横屏与全屏显示
今天遇到一个需求,需要在全屏的情况下进行界面设计。
横屏
横屏很简单,只用一句。
//横屏显示
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
全屏显示
全屏显示意味着需要隐藏掉状态栏和虚拟按键。
这里我通过搜索引擎找到了解决方法。
//去掉Activity上面的状态栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//去掉虚拟按键全屏显示
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
但是这样还是不行,当我滑动出虚拟按键时,他无法再隐藏。出现这样的情况可以加上。
protected void hideBottomUIMenu() {
//隐藏虚拟按键,并且全屏
if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
View v = this.getWindow().getDecorView();
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;
decorView.setSystemUiVisibility(uiOptions);
}
加上这段代码就可以避免这个情况,通过我简单的测试还是发现了一个小问题。当我进入程序点击Home键再次点击app时,虚拟按键还是出现了,而且无法隐藏。这里就关乎到Active的一个生命周期的问题了,所以我们要在onstar这个生命周期中,再次调用上述的隐藏方法即可。
本文地址:https://blog.csdn.net/qq_48204632/article/details/107468610