«

沉浸式状态栏调用方法

时间:2024-3-2 18:56     作者:韩俊     分类: Android


MIUI 6上大受好评的沉浸式状态栏其实是谷歌原生自带的一种样式(4.4以上版本支持),我们也可以通过带买来轻松实现

   @TargetApi(19)
    private void setTranslucentStatus(boolean on) {
        Window win = getWindow();
        WindowManager.LayoutParams winParams = win.getAttributes();
        final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
        if (on) {
            winParams.flags |= bits;
        } else {
            winParams.flags &= ~bits;
        }
        win.setAttributes(winParams);
    }

 public void setStatusBarDarkMode(boolean darkmode, Activity activity) {
            Class<? extends Window> clazz = activity.getWindow().getClass();
            try {
            int darkModeFlag = 0;
            Class<?> layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
            Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
            darkModeFlag = field.getInt(layoutParams);
            Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
            extraFlagField.invoke(activity.getWindow(), darkmode ? darkModeFlag : 0, darkModeFlag);
            } catch (Exception e) {
                e.printStackTrace();
            }
    }




标签: android

热门推荐