Closed zzzsssbo closed 6 years ago
具体是怎么样的使用姿势?
MainActivity中包含一个viewpager ,viewpager中有3个Fragment,在MainActivity中调用了 StatusBarUtil.setTranslucentForImageViewInFragment(MainActivity.this, 0, null); 设置了沉浸式效果,但是我还想将状态栏的文字颜色改成黑色,setLightMode 后,而且文字颜色变成了黑色,但是沉浸式效果没有了
这种场景是吧,等我抽空我测试下看看。 你可以简单看下源码,代码不多,你试试改下,看看能修复不?
嗯 好的,谢谢
/** * 设置透明 */ private static void setTransparentForWindow(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && "Xiaomi".equals(Build.MANUFACTURER)) { Window window = activity.getWindow(); window.setStatusBarColor(Color.TRANSPARENT); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { activity.getWindow().setStatusBarColor(Color.TRANSPARENT); activity.getWindow() .getDecorView() .setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { activity.getWindow() .setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } }
@zhangshaobo87 做个参考 我没试其他的,小米的对于23以上的sdk做了调整,https://dev.mi.com/console/doc/detail?pId=1159
@zhangshaobo87 1.5.1 版本发布了,修复了这个 bug @fanturbo
1.5.1修改后怎么使用的?我是mainactivity+4fragment,里面有一个fragment顶部是图片。 由于状态栏底色是白的所以想把字体什么的设成黑色的。 使用: StatusBarUtil.setTranslucentForImageViewInFragment(MainActivity.this, 0, null); StatusBarUtil.setLightMode(this); 但是没有效果,状态栏的字体是黑的,但是沉浸式效果不见了。
@zhangshaobo87 您好您的问题的怎么解决的啊?
沉浸式状态栏 和设置状态栏字体颜色是不是冲突呀,我设置了沉浸式后在设置状态栏字体颜色,沉浸式就无效了