2

最近我从 v21.0.3 升级到支持 lib v22.1,ActionMode 曾经在 v21.0.3 上完美运行。它在 Lollipop 上仍然很好用,但在 Pre-L 设备上不能正常工作。

更新后,这是它在 Android Lollipop 上的外观

在此处输入图像描述

这是它在 Kitkat 上的外观

Kitkat 上的动作模式

下面是我使用的主题

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="windowActionModeOverlay">true</item>
</style>

以及 Activity XML 中的工具栏

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

PS在 v22.0.0 上也有同样的问题

4

1 回答 1

3

一种可能的解决方法是按照您的风格手动设置动作模式背景。添加以下行在我的项目中修复了一个非常相似的问题:

    <item name="android:actionModeBackground">@color/dark_blue</item> <!-- 5.0 -->
    <item name="actionModeBackground">@color/dark_blue</item> <!-- 4.4 and before -->
于 2015-05-01T18:25:03.960 回答