相关疑难解决方法(0)

使用ActionMode时,Lollipop上的状态栏变黑

我有一个状态栏,主题集中包含以下内容:

<!-- 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)

android statusbar android-actionmode

25
推荐指数
1
解决办法
7135
查看次数

标签 统计

android ×1

android-actionmode ×1

statusbar ×1