我有一个状态栏,主题集中包含以下内容:
<!-- Base Theme for all "Material"-esque styles. We use NoActionBar
so we can use the Toolbar at runtime.
-->
<style name="Material" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowTranslucentStatus">true</item>
...
</style>
Run Code Online (Sandbox Code Playgroud)
我DrawerLayout的大多数活动都有,它使用以下方式设置状态栏的颜色:
mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.myapp_green));
Run Code Online (Sandbox Code Playgroud)
我使用的是a Toolbar,而不是默认值ActionBar,因此它存在于我的布局中(即导航抽屉在其上绘制).
一切都很好,除了在我的一个活动中,我有一个多选模式ActionMode.当ActionMode激活它(使用长按)时,它覆盖Toolbar使用:
<item name="android:windowActionModeOverlay">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="actionModeStyle">@style/Material.Widget.ActionMode</item>
Run Code Online (Sandbox Code Playgroud)
的Material.Widget.ActionMode风格是:
<style name="Material.Widget.ActionMode" parent="@style/Widget.AppCompat.ActionMode">
<item name="android:background">@color/myapp_green</item>
<item name="background">@color/myapp_green</item>
</style>
Run Code Online (Sandbox Code Playgroud)
现在,问题在于,只要发生这种情况,状态栏就会从myapp_green颜色变为黑色.这几乎就像关闭了状态栏半透明(我使用的是Android 5.0).我想知道如何才能使这种行为不会发生,并保持状态栏的颜色/半透明度.
我试图添加<item name="android:windowTranslucentStatus">true</item>动作模式的样式,以及添加<item name="android:statusBarColor">@color/myapp_green</item>样式ActionMode,两者都没有成功.
更新:
我想知道这是否与我设置状态栏背景的不稳定方式有关.我的所有Activity类都派生自NavigationDrawerActivity.java:
/**
* An …Run Code Online (Sandbox Code Playgroud)