样式ActionMode ActionBar在Android 5.0棒棒糖(与AppCompat)
我使用这个教程整容我的Holo应用程序的棒棒糖: 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" />
-
在多选模式下从具有ListFragment片段的ActionBarActivityinheritance的活动
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
结果 :工具栏是确定的。 它使用sepcified主题颜色,但ActionMode中的ListFragment使用的ActionBar(通过点击并按住列表项目激活)具有标准的Dark.ActionBar颜色。 此外,操作栏的popup菜单使用黑暗的主题。
我尝试了所有的技巧,但仍然无法解决这个问题。 我将不胜感激任何帮助。
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>
除了@Andrey Shcherbakov的回答,如果你想对每一个单独的颜色有更多的控制,这也可能是有帮助的。
<!-- 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>