使用windowTranslucentStatus = true时摆脱Android L自动不透明色

Asd*_*Asd 1 android android-4.4-kitkat android-5.0-lollipop android-statusbar

有谁知道当您使用windowTranslucentStatus = true时如何摆脱这种自动色调?我已经将状态栏颜色设置为透明,但是当启用windowTranslucentStatus时,它似乎将其覆盖。如果禁用windowTranslucentStatus,则可以得到所需的状态栏颜色,但无法再在状态栏下绘制导航抽屉。我可以使用ScrimInsetFrameLayout实现我想要的功能,但这引起了其他问题。

在此处输入图片说明

Mat*_*ini 5

如果启用FLAG_TRANSLUCENT_STATUS,则可以在状态栏下进行绘制,因为它会自动设置其他两个系统UI可见性标志,如文档中所述:

公共静态最终int FLAG_TRANSLUCENT_STATUS

为窗口启用此标志后,它将自动设置系统UI可见性标志SYSTEM_UI_FLAG_LAYOUT_STABLE和SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN。

由于只想使用setStatusBarColor,因此需要手动设置这些标志:

int flag = window.getDecorView().getSystemUiVisibility();
window.getDecorView().setSystemUiVisibility( flag | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
window.setStatusBarColor(context.getResources().getColor(R.color.yourcolor));
Run Code Online (Sandbox Code Playgroud)