使用windowTranslucentStatus=true时,去掉Android L自动不透明度色调

使用windowTranslucentStatus=true时,去掉Android L自动不透明度色调,android,android-5.0-lollipop,android-4.4-kitkat,android-statusbar,Android,Android 5.0 Lollipop,Android 4.4 Kitkat,Android Statusbar,当您使用windowTranslucentStatus=true时,有人知道如何摆脱这种自动着色吗?我已经将状态栏颜色设置为透明,但当我启用windowTranslucentStatus时,它似乎覆盖了该设置。如果禁用windowTranslucentStatus,则会获得所需的状态栏颜色,但无法再在状态栏下绘制导航抽屉。我能够使用ScrimInsetFrameLayout实现我想要的,但这导致了其他问题 如果启用标记半透明状态,则可以在状态栏下绘制,因为它会自动设置两个其他系统UI可见性标志,

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


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

公共静态最终整数标志\半透明\状态

为窗口启用此标志时,它会自动设置 系统界面可见性标志系统界面标志布局稳定 系统\用户界面\标志\布局\全屏显示

由于您只想使用
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));