Styling ActionMode ActionBar en Android 5.0 Lollipop(con AppCompat)
android-actionbar android-5.0-lollipop (2)
Utilicé este tutorial para renovar mi aplicación Holo para Lollipop: http://android-developers.blogspot.ru/2014/10/appcompat-v21-material-design-for-pre.html
Lo que tengo:
Tema
<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>
Diseño de la barra de herramientas
<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" />
Actividad heredada de ActionBarActivity con un fragmento ListFragment en el modo de elección múltiple
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
Resultado : la barra de herramientas está OK. Utiliza los colores de temas septados, pero la barra de acciones utilizada por ListFragment en ActionMode (activada al mantener pulsado un elemento de la lista) tiene los colores estándar Dark.ActionBar. Además, el menú emergente de la barra de acciones usa el tema oscuro.
Intenté todos los trucos de SO, pero todavía no puedo resolver eso. Apreciaré cualquier ayuda.
Por cierto. Descubrí que los colores oscuros de ActionBar son causados por la app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
la barra de herramientas app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
, pero no tengo idea de cómo resolver esto, porque este atributo es necesario para la apariencia correcta de la barra de herramientas.
Esto también podría ser útil, además de la de , si desea tener más control de cada color individual.
<!-- 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>
Solo agrega estas dos líneas al tema:
<item name="actionModeBackground">@color/theme_primary_dark</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>