如何设置android:popupBackground边框size/padding?

How to set android:popupBackground border size/padding?

我想在 Android Studio 中设置 Spinner 的背景颜色,并且可以使用以下代码实现:

<Spinner
    android:id="@+id/StreamSpinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:background="#D2B450"
    android:popupBackground="#D2B450">
</Spinner>

问题是,当我添加 android:popupBackground="#D2B450" 时,它在选择框周围放置了一些 borders/padding,而在我添加该行之前,这些选择框并不存在。在我添加该行之前,带有内容的选择框是白色背景并且没有 padding/borders.

我一直无法找到如何在保留我需要的背景颜色的同时删除它 (#D2B450)。

这是用来设置 popupBackground 的线的样子(见黑色边框)

这是没有该行的样子:

谁能指出我去除边框的正确方向?

谢谢。

您可以尝试以编程方式设置它:

<color name="spinner_background">#D2B450</color>
spinner2.setPopupBackgroundResource(R.color.spinner_background);

选项 2:

如果仍然无效,可以创建自定义项目布局;将其设置为 android:background;并修复 android:foreground.

中的连锁反应

spinner_item.xml

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:layout_width="match_parent"
    android:layout_height="?attr/dropdownListPreferredItemHeight"
    android:foreground="?attr/selectableItemBackground"
    android:ellipsize="marquee"
    android:singleLine="true" />

并将其设置为微调器适配器:

adapter.setDropDownViewResource(R.layout.spinner_item);
  • 缺点是涟漪效应只对API-23+
  • 起作用