1、在代码中设置:
在Activity
的onCreate
方法中使用requestWindowFeature(Window.FEATURE_NO_TITLE);
和getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
来实现全屏。
这两行代码必须在setContentView(R.layout.main);
之前调用,否则会报错。
步骤 | 代码示例 |
第一步 | requestWindowFeature(Window.FEATURE_NO_TITLE); |
第二步 | getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); |
第三步 | setContentView(R.layout.main); |
2、在配置文件中设置:
在AndroidManifest.xml
文件中,为需要设置为全屏的Activity
添加主题属性android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
。
这种方法设置全屏后,应用启动时不会出现状态栏短暂显示的情况。
元素 | 属性 | 值 |
| android:theme | @android:style/Theme.NoTitleBar.Fullscreen |
1、为什么在代码中设置全屏时,两段代码必须设置在setContentView()
方法之前?
如果在setContentView()
之后设置全屏,可能会导致窗口已经渲染了标题栏和状态栏,再设置全屏标志位将无法去除这些元素,从而导致全屏设置不生效或出现异常。
2、两种设置全屏的方法有什么区别?哪种更好?
在代码中设置全屏更灵活,可以针对不同的Activity
或在运行时根据条件动态地设置全屏,而通过配置文件设置全屏则更简单直接,适用于所有Activity
都需要全屏的情况,如果应用的所有页面都需要全屏显示,推荐使用配置文件设置;如果只有部分页面需要全屏,则可以使用代码设置。