附:开发者应该做的修改
如果开发者需要设置「状态栏黑色字符」的效果, 需要做以下几件事:
1. 在新的 MIUI 版本(即基于 Android 6.0 ,开发版 7.7.13 及以后版本):
- 使用 `View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR` ,来设置「状态栏黑色字符」效果
- 同时要设置`WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS`,
- 并且无 `WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS`
参考实例:
Window window = getWindow();
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);
2. 在旧的MIUI版本
还有大量的米粉使用旧的MIUI版本,因此仍然需要使用 MIUI 原有的方法,即
Window window = getWindow();
window.addExtraFlags(MiuiWindowManager.LayoutParams.EXTRA_FLAG_STATUS_BAR_DARK_MODE);
为了保证在新旧版本的 MIUI 都能实现「状态栏黑色字符」的效果,需要开发者同时写上以上两种实现方法。
如果开发者需要设置「状态栏黑色字符」的效果, 需要做以下几件事:
1. 在新的 MIUI 版本(即基于 Android 6.0 ,开发版 7.7.13 及以后版本):
- 使用 `View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR` ,来设置「状态栏黑色字符」效果
- 同时要设置`WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS`,
- 并且无 `WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS`
参考实例:
Window window = getWindow();
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);
2. 在旧的MIUI版本
还有大量的米粉使用旧的MIUI版本,因此仍然需要使用 MIUI 原有的方法,即
Window window = getWindow();
window.addExtraFlags(MiuiWindowManager.LayoutParams.EXTRA_FLAG_STATUS_BAR_DARK_MODE);
为了保证在新旧版本的 MIUI 都能实现「状态栏黑色字符」的效果,需要开发者同时写上以上两种实现方法。