Android Spinner - 如何使下拉视图透明?

2022-09-04 23:49:07

我在/res/layout/中有一个自定义微调器下拉列表xml文件:

spinner_view_dropdown.xml:

<?xml version="1.0" encoding="UTF-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinner_item_dropdown"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
style="@style/spinner_item_dropdown" />

我正在通过java设置微调器下拉列表:

// "Spinner", aka breadcrumbs
    Spinner spin = (Spinner) findViewById(R.id.breadcrumb_dropdown);

    ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.breadcrumb, R.layout.spinner_view);

    adapter.setDropDownViewResource(R.layout.spinner_view_dropdown);

    spin.setAdapter(adapter);
    // /"Spinner"

不幸的是,无论我是否将背景设置为透明,微调器弹出窗口中仍然存在白色背景。

如何解决此问题?


答案 1

您可以通过在应用中使用从某个 Android 主题继承的主题来覆盖下拉列表和下拉列表项的样式,然后覆盖

android:dropDownSpinnerStyle,或者,甚至是主题的属性,指向您自己的自定义样式,而不是在其主题中定义的 Android 样式。我以这种方式创建了一个完全自定义的微调器,带有一个透明的按钮AND下拉列表。我甚至摆脱了下拉列表分隔符,并在为Fandango构建平板电脑应用程序时为下拉列表项设置了自己的间距(查看应用程序主页上的排序电影微调器)。android:spinnerDropDownItemStyleandroid:dropDownListViewStyle

Android中的所有内容都是可定制的,您只需要知道在哪里查找即可。;-)


答案 2

尝试在微调器上设置以下内容:

android:popupBackground="@android:color/transparent"

推荐