从 AutoCompleteTextView 下拉列表中删除阴影

Posted

技术标签:

【中文标题】从 AutoCompleteTextView 下拉列表中删除阴影【英文标题】:Remove Shadow From AutoCompleteTextView Dropdown 【发布时间】:2015-09-17 02:05:24 【问题描述】:

我正在尝试创建一个full width auto complete text field。

到目前为止,我认为文本字段本身看起来是正确的。问题在于自动完成弹出窗口。它周围有一个非常大胆的阴影,我就是无法摆脱它。 不要误会我的意思,我仍然想要阴影,但是一个微妙的阴影,只在弹出窗口的底部,而不是在它周围(尤其不是在顶部,这真的很奇怪)。

类似这样的:

这是我的样子(抱歉,图片太大):


代码

activity_main.xml:

<AutoCompleteTextView
    android:id="@+id/actvSearch"
    android:layout_
    android:layout_
    android:layout_alignParentTop="true"
    android:layout_marginBottom="8dp"
    android:background="@drawable/full_width_input"
    android:completionThreshold="1"
    android:hint="Search a movie..."
    android:textColorHint="#BDBDBD"
    android:elevation="0dp"
    android:popupBackground="@android:color/white" />

full_width_input.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="-1dp" android:right="-1dp" android:left="-1dp">
        <shape android:shape="rectangle">
            <padding android:bottom="20dp" android:top="20dp" android:left="16dp" android:right="16dp" />
            <solid android:color="@android:color/white" />
            <stroke android: android:color="#E0E0E0" />
        </shape>
    </item>
</selector>

【问题讨论】:

【参考方案1】:

如果我们在 AutoCompleteTextView 中设置 android:popupBackground="@null" 并将适配器行的背景设置为白色,我们可以实现这一点。希望它会帮助你。

【讨论】:

感谢您的回答!我尝试了您的解决方案,它几乎就在那里。没有阴影,但似乎每行的白色背景不会影响项目的实际背景。现在,就像列表有透明背景一样。【参考方案2】:

这个问题已经有点老了,但无论如何。我刚刚解决了这个问题。我使用 android:popupBackground="@null" 进行自动完成,但它在 ANDROID 6 上无法正常工作(我刚刚测试过)。

不要使用android:popupBackground="@null",而是使用android:popupBackground="@android:color/transparent"(它也适用于Android 4.4 和5.0)。

【讨论】:

【参考方案3】:

我最终做的是使用 ListView 手动创建自动完成。

花了一些时间,但现在我有了我心中的确切设计。

【讨论】:

【参考方案4】:

使用 android:popupElevation="0"

<AutoCompleteTextView
    android:id="@+id/actvSearch"
    android:layout_
    android:layout_
    android:layout_alignParentTop="true"
    android:layout_marginBottom="8dp"
    android:background="@drawable/full_width_input"
    android:completionThreshold="1"
    android:hint="Search a movie..."
    android:textColorHint="#BDBDBD"
    android:popupElevation="0dp"
    android:popupBackground="@android:color/white" />

【讨论】:

以上是关于从 AutoCompleteTextView 下拉列表中删除阴影的主要内容,如果未能解决你的问题,请参考以下文章

android AutoCompleteTextView 白色上的白色下拉列表

在AutocompleteTextview的下拉列表中自定义分隔符/分隔符

AutoCompleteTextView

AutoCompleteTextView - 我正在使用autocompletetextview,它显示来自API的值(返回名称和代码)

android AutoCompleteTextView如何设置下拉框每个条目的内容因过长而显示不全的问题

AutoCompleteTextView - 禁用过滤