【问题标题】:Android Spinner - How to make dropdown view transparent?Android Spinner - 如何使下拉视图透明?
【发布时间】:2010-12-27 11:16:35
【问题描述】:

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

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

我该如何解决这个问题?

【问题讨论】:

  • 您已将背景设置为透明,但是 textview 保存在对话框中,并且对话框具有背景颜色。

标签: java android android-widget spinner


【解决方案1】:

您可以通过在您的应用中使用继承自 Android 主题之一的主题来覆盖下拉菜单和下拉项目的样式,然后覆盖

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

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

【讨论】:

  • 你能举例说明如何按照你的建议去做吗?
  • @Junaid 我认为你最好学习一下文档:developer.android.com/guide/topics/ui/themes.html
  • 妈啊啊啊!感谢那。但小例子仍然有用:)
  • 一个例子就是了不起的伙伴,我真的会像上帝一样崇拜你.. 每次收获时都会为你牺牲一只小羊羔等等
  • 对不起,伙计们,我没有方便的示例。该代码属于 Fandango。没有什么能阻止您反编译 apk (miui-au.com/add-ons/apktool),并查看我编写的主题/样式。 ;)
【解决方案2】:

尝试在微调器上设置这个:

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

【讨论】:

  • 谢谢你!我将其用于自定义颜色: android:popupBackground="#0f0f0f" 效果很好
【解决方案3】:

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

话虽如此,正确的问题是:您能否为条目的父视图(可能是列表)提供自定义布局?据我所知,很遗憾,答案是否定的。

【讨论】:

【解决方案4】:

试试

android:cacheColorHint="#00000000" 

获得透明度。

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

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

【讨论】:

    【解决方案5】:

    我认为这是 1.5 中的错误,请参见此处

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

    在 1.6 的模拟器或设备上运行它,它仍然保持白色吗?

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

    任何想法。

    附:我以为我登录时不小心发布了,有人知道如何摆脱匿名评论吗?也许管理员可以解决这个问题?

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多