Android 工具栏中的弹出菜单选定项

Android 工具栏中的弹出菜单选定项,android,Android,当我单击弹出菜单中的项目时,其文本视图背景保持不变 屏幕: 我使用工具栏: <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary"

当我单击弹出菜单中的项目时,其文本视图背景保持不变

屏幕:

我使用工具栏:

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="@dimen/actionbar_height"
        app:popupTheme="@style/PopupMenu"
        app:theme="@style/Toolbar" />

带有自定义主题的弹出式菜单:

 <style name="Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="colorPrimary">@color/background</item>
    <item name="android:height">@dimen/actionbar_height</item>
    <item name="android:actionModeBackground">@color/background</item>
</style>

<style name="PopupMenu" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:background">@color/background</item>
</style>

@颜色/背景
@尺寸/操作杆高度
@颜色/背景
@颜色/背景

如何使select正常工作?

我也遇到了同样的问题,通过尝试和错误,我发现使用:

<item name="android:colorBackground">@color/background</item>
@颜色/背景
而不是

<item name="android:background">@color/background</item>
@颜色/背景

为我解决了这个问题,我不知道是否达到同样的效果,但至少没有显示丑陋的背景。

ZoserLock提到的ColorBackground对我也不起作用,我不得不这样做

<item name="android:background">@color/background</item>
<item name="android:drawSelectorOnTop">true</item>
<item name="android:backgroundTint">@color/background</item>
<item name="android:drawSelectorOnTop">true</item>
@颜色/背景
真的
我还发现android:backgroundTint和background做了同样的事情

<item name="android:backgroundTint">@color/background</item>
<item name="android:drawSelectorOnTop">true</item>
@颜色/背景
真的

注意:如果您使用selectableItemBackground使用自己的选择器,并且选择器不是透明的drawSelectorOnTop将无法工作,因为它将覆盖您的文本。我还没有找到一个满意的解决方案。

我假设您无法访问底层的
TextView
?如果可以,只需将其背景始终设置为透明值即可。@NitroNbg我不确定这是否可行。我希望只有使用xml才能解决这个问题。如果您使用的是
ThemeOverlay.AppCompat.Dark.ActionBar
主题,那么您似乎无法通过xml更改
弹出主题。尝试将主题更改为
灯光
,然后尝试again@sicachester你的意思是
Theme.Light
?我到底应该改变什么,弹出菜单主题还是整个应用主题?整个应用主题。。。尝试更改为
ThemeOverlay.AppCompat.Light