更改暴露的下拉菜单的背景颜色

Den*_* H. 6 android spinner drop-down-menu material-design

我认为 Android 开发人员在开玩笑。首先,他们从 Material Design 中移除了真正的微调器,其次在某种程度上无法设计样式。看看这张图片。我看起来真的很好!我没有找到更改下拉列表背景颜色的可能性。我可以为列表中的每个项目设置样式,但仍然将列表顶部和底部的“圆角区域”保留为白色。

在此处输入图片说明

有人知道如何仅更改列表的背景颜色吗?

确实有一种改变它的方法(取自这里),通过应用:

 <style name="AppTheme.ExposedDropdownMenu" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu">
    <item name="materialThemeOverlay">@style/AppTheme.ExposedDropdownMenu.MaterialThemeOverlay</item>
 </style>


 <style name="AppTheme.ExposedDropdownMenu.MaterialThemeOverlay" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <!-- background color of dropdown (popup) items -->
    <item name="colorSurface">#444444</item>
 </style>
Run Code Online (Sandbox Code Playgroud)

但这会改变 EditText 的内边距、颜色和内边距。它也完全删除了菜单的高度,我无法恢复。

仅更改此菜单的背景颜色不会那么困难?!为什么这个 API 如此令人困惑。

后续问题:任何人都知道一种使 TextView 可复合绘制的方法(在 EditText 内)?

小智 0

<style name="changeBackgroundColor"  parent="Widget.MaterialComponents.TextInputLayout.Outline   dBox.Dense">
<item name="colorSurface">@color/yourColor</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后,将此主题包含在 TextInputLayout 内的 .xml 布局中。IE

android:theme="@style/changeBackgroundColor" 
Run Code Online (Sandbox Code Playgroud)