Activity页面全屏探究
一些场景下需要应用全屏
1、Window设置Flag
在Activity的onCreate()方法中设置Flag:WindowManager.LayoutParams.FLAG_FULLSCREEN。了解更多Window Flag相关知识的详见《理解WindowManager》。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
2、在AndroidManifest中设置theme属性
首先在values/styles.xml中自定义theme主题,继承一个系统自带的主题。然后设置android:windowFullscreen属性为true。
<style name="AppTheme.TransparentStausBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
//Window全屏
<item name="android:windowFullscreen">true</item>
</style>
在AndroidManifest中application或者activity节点中使用自定义的android:theme
<activity android:name=".FullScreenActivity"
android:theme="@style/FullScreenTheme"/>
IQOO的全屏效果如下,状态栏怎么直接黑了,不是想要的那种全屏。
可能状态栏需要另外设置,因为手机屏幕是水滴屏,屏幕正上方有一个前置摄像头。设置全屏android:windowFullscreen = false的时候,将状态栏设置成透明,有点全屏的意思了,在将状态栏隐藏就是真正的全屏!
<item name="windowNoTitle">true</item>
//设置非全屏
<item name="android:windowFullscreen">false</item>
//状态栏透明
<item name="android:windowTranslucentStatus">true</item>
随后用锤子 Smartisan M1L 调试一下,是完全可以全屏显示地,状态栏也隐藏了。

因为自定义的Activity继承自AppCompatActivity,所以只能使用Theme.AppCompat.*下的主题。如果使用了android:theme="@android:style/Theme.NoTitleBar.Fullscreen"否则会奔溃报错。提示应该使用Theme.AppCompat下的主题。
D AndroidRuntime: Shutting down VM
E AndroidRuntime: FATAL EXCEPTION: main
E AndroidRuntime: Process: com.example.androidstudio, PID: 17290
E AndroidRuntime: java.lang.RuntimeException:
Unable to start activity ComponentInfo{.androidsenCaptureActivity}:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.