在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"/>
当多项选择未激活时,弹出主题的外观(正确):
多重选择处于活动状态时,这里的显示方式(错误):
它的菜单-ActionMode
在您的情况下,您会看到默认的OptionsMenu
弹出窗口背景为白色,而应用程序的默认上下文菜单为黄色。当您进行多选时,会触发一个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);
}
希望对您有所帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句