我在/ 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"
不幸的是,无论我是否将背景设置为透明,微调器弹出窗口仍然存在白色背景。
我该如何解决这个问题?
答案 0 :(得分:29)
您可以通过在应用中使用继承自其中一个Android主题的主题来覆盖下拉列表的样式和下拉项,然后覆盖
android:dropDownSpinnerStyle
或android: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。当我以为我登录时意外发布,有人知道如何摆脱匿名评论?也许管理员可以解决这个问题?