在styles.xml中,我正在设置工具栏中溢出菜单的弹出主题:
<style name="ToolbarOverflowMenuStyle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:backgroundTint">@color/white</item>
</style>
按预期工作但如果我在回收站视图(列表)中进行多项选择,则弹出主题背景颜色将从白色变为黄色(工具栏的颜色)。我不知道为什么会这样,因为如果多选不活动,它的颜色正确。
任何想法我做错了什么?
工具栏的样式:
<style name="PostToolbarStyle" parent="android:Theme.Material">
<item name="android:backgroundTint">@color/yellow</item>
<item name="android:textColorHint">@color/lightGray2</item>
<item name="android:textColorPrimary">@color/defaultTextColor</item>
<item name="android:textColorSecondary">@color/defaultTextColor</item>
</style>
这就是我在布局xml文件中设置工具栏的方法:
<android.support.v7.widget.Toolbar
android:id="@+id/app_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:minHeight="?attr/actionBarSize"
android:paddingTop="@dimen/tool_bar_top_padding"
app:popupTheme="@style/ToolbarOverflowMenuStyle"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"/>
多选未激活时弹出主题的外观如何(正确):
以下是多重选择激活时如何显示(错误):
答案 0 :(得分:0)
您可以尝试使用此属性selectableItemBackground
编辑样式 <style name="ToolbarOverflowMenuStyle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:backgroundTint">@color/white</item>
<item name="selectableItemBackground">?android:selectableItemBackground</item></style>
与SwitchCompat有类似的问题,解决方案是在其中一个属性本身。此博客也帮了很多忙。 http://blog.mohitkanwal.com/blog/2015/03/07/styling-material-toolbar-in-android/
答案 1 :(得分:0)
它的Menu - ActionMode
您看到默认的OptionsMenu
popUp背景为白色,而您的应用的默认上下文菜单是黄色的。当您进入多选时,会触发ActionMode以处理itemClick以及您拥有的内容,并且因为您知道CAB的工作原理。
如果您想在setMultiChoiceModeListener
覆盖onPrepareActionMode(ActionMode mode, Menu menu)
中保持相同的白色背景并使用getCustomView().setBackgroundColor(Color.White);
修改:解决评论
这就是我在onPrePareActionMode()
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
//the mode parameter is your CAB, so call that on it
mode.getCustomView().setBackgroundColor(Color.White);
}
希望它有用