Android状态栏沉浸式模式下全屏、修改颜色

来源:互联网 发布:东欧 历史 知乎 编辑:程序博客网 时间:2024/04/25 09:40

偶然在github上发现了沉浸式模式实现比较简单的一种方法,
效果图:

代码实现:

/** * 设置状态栏全透明 * * @param activity 需要设置的activity */public static void setTransparent(Activity activity) {    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {        return;    }    transparentStatusBar(activity);    setRootView(activity);}
/** * 使状态栏透明 */@TargetApi(Build.VERSION_CODES.KITKAT)private static void transparentStatusBar(Activity activity) {    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {        activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);        activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);        activity.getWindow().setStatusBarColor(Color.TRANSPARENT);    } else {        activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);    }}
/** * 设置根布局参数 */private static void setRootView(Activity activity) {    ViewGroup rootView = (ViewGroup) ((ViewGroup) activity.findViewById(android.R.id.content)).getChildAt(0);    rootView.setFitsSystemWindows(true);    rootView.setClipToPadding(true);}

完美实现了沉浸式模式,即使是屏幕底部有虚拟按键的也可以实现全屏,除此之外还可以改变颜色、透明度、侧滑菜单,感谢
zyj1609wz,顺便附上他的github地址https://github.com/zyj1609wz/Android-StatusBarColor
0 0
原创粉丝点击