1,概论
工作中经常需要用到全屏的页面,还要隐藏系统状态栏或沉浸式
2,设置全屏
2.1,设置有代码中设置,也有Mainfest.xml中设置theme
2.2,要是全局生效就在application中设置,要么就是具体activity中设置
2.3,全屏代码示例如下:
//style.xml中<style name="FullScreen" parent="Theme.AppCompat.Light.NoActionBar"><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimary</item><item name="colorAccent">@color/colorPrimary</item><item name="android:windowFullscreen">true</item><item name="windowNoTitle">true</item></style>//AndroidMainfest.xml activity中<activityandroid:name="com.aile.xu.activity.PreviewActivity"android:theme="@style/FullScreen" />
3,隐藏状态栏
public static void setStatusBarTranslucent(Activity activity) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {View decorView = activity.getWindow().getDecorView();decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);activity.getWindow().setStatusBarColor(Color.TRANSPARENT);} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);}}
4,综合描述
若是不设置全屏,不隐藏状态栏, 页面和状态栏独立显示(颜色可沉浸式)
若是不设置全屏, 隐藏状态栏, 页面填充到状态栏(图片可沉浸式)
若是设置全屏, 不隐藏状态栏, 全屏状态栏留白(有问题)
若是设置全屏, 隐藏状态栏, 全屏无状态栏(真正全屏)