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

时间:2009-12-16 23:08:21

标签: java android android-widget spinner

我在/ 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"

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

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:29)

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

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

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

答案 1 :(得分:26)

尝试在微调器上设置:

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

答案 2 :(得分:1)

您定义的布局仅用于下拉列表的条目,而不是下拉列表本身。因此,将背景设置为透明不会对其背景产生任何影响。但即使这样,将背景设置为透明仍然没有效果,因为默认情况下TextView(实际上我相信任何视图)具有透明背景。

话虽如此,正确的问题是:你能为条目的父视图(可能是List)提供自定义布局吗?据我所知,不幸的是答案是否定的。

答案 3 :(得分:0)

尝试

android:cacheColorHint="#00000000" 

获得透明度。

我不知道它是否适合你,但有一篇帖子 http://android-developers.blogspot.com/2009/01/why-is-my-list-black-android.html 这解释了为什么列表的移动部分以背景颜色显示。

也许与你的微调器有同样的问题。

答案 4 :(得分:0)

这是我认为的1.5中的错误,请看这里

http://www.symsource.com/index.php?view=article&id=418&option=com_content&format=pdf

在1.6仿真器或设备中运行它,它仍然保持白色吗?

我实际上是来这里寻找方法,我怀疑这可能涉及手动写入画布或类似的东西。

任何想法。

P.S。当我以为我登录时意外发布,有人知道如何摆脱匿名评论?也许管理员可以解决这个问题?