Android 8.1 沉浸式状态栏
1.沉浸式全透明状态栏设置:
Window window = activity.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
int option = window.getDecorView().getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
window.getDecorView().setSystemUiVisibility(option);
window.setStatusBarColor(Color.TRANSPARENT);
具体操作如下:首先写一个Util类,定义好需要执行的操作,然后在需要的地方调用
(1)定义StatusBarUtils 类,写好设置沉浸式透明状态栏需要的方法
public class StatusBarUtils {
public static void makeStatusBarTransparent(Activity activity) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
return;
}
Window window = activity.getWindow();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
int option = window.getDecorView().getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
window.getDecorView().setSystemUiVisibility(option);
window.setStatusBarColor(Color.TRANSPARENT);
} else {
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
}
}
(2) 在需要沉浸式设置的Activity中的OnCreate()方法中调用makeStatusBarTransparent()方法
StatusBarUtils.makeStatusBarTransparent(this);
更多相关文章
- android的ListView自定义滚动条
- Android应用前后台监听最简单的方法
- 自定义垂直文字view
- android UI自定义设计圆形ImageView
- Android退出多个Activity的两个经典方法
- Android 自定义添加联系人
- android 自定义View之Path详解
- 自定义的Spinner文字居中
- Android 多样式ProgressBar、ProgressDialog,自定义ProgressBar样