首页 > 解决方案 > 更改暴露下拉菜单的背景颜色

问题描述

我认为 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>

但这会改变 EditText 的填充、颜色和填充。它还完全删除了我无法恢复的菜单的高度。

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

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

标签: androiddrop-down-menumaterial-designspinner

解决方案


<style name="changeBackgroundColor"  parent="Widget.MaterialComponents.TextInputLayout.Outline   dBox.Dense">
<item name="colorSurface">@color/yourColor</item>
</style>

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

android:theme="@style/changeBackgroundColor" 

推荐阅读