Ответ 1
Просто добавьте эти две строки в тему:
<item name="actionModeBackground">@color/theme_primary_dark</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
Я использовал этот учебник для облегчения моего приложения Holo для Lollipop: http://android-developers.blogspot.ru/2014/10/appcompat-v21-material-design-for-pre.html
Что у меня:
Тема
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionModeOverlay">true</item>
<item name="colorPrimary">@color/theme_primary</item>
<item name="colorPrimaryDark">@color/theme_primary_dark</item>
<item name="colorAccent">@color/theme_accent</item>
</style>
Макет панели инструментов
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
Активность, унаследованная от ActionBarActivity с фрагментом ListFragment в режиме множественного выбора
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
Результат: панель инструментов в порядке. Он использует выделенные цвета темы, но ActionBar, используемый ListFragment в ActionMode (активированный нажатием и удержанием элемента списка), имеет стандартные цвета Dark.ActionBar. Также всплывающее меню панели действий использует темную тему.
Я пробовал все трюки SO, но до сих пор не могу это решить. Я буду признателен за любую помощь.
BTW. Я обнаружил, что темные цвета ActionBar вызваны панелью инструментов app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
, но понятия не имею, как решить эту проблему, потому что этот атрибут необходим для правильного внешнего вида панели инструментов.
Просто добавьте эти две строки в тему:
<item name="actionModeBackground">@color/theme_primary_dark</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
Это может быть полезно в дополнение к @Андрею Щербакову ответить, если вы хотите иметь больший контроль над каждым цветом.
<!-- action bar title text color, icon color (ie: back icon, icons when editing text)-->
<item name="android:textColorPrimary">#FFFF00</item>
<!-- action bar background color-->
<item name="android:colorBackground">#444400</item>
<!-- color of line under contextual action bar-->
<item name="colorControlActivated">#00CC00</item>