从 AutoCompleteTextView 下拉列表中删除阴影
Remove Shadow From AutoCompleteTextView Dropdown
我正在尝试创建一个 full width auto complete text field。
到目前为止,我认为文本字段本身看起来是正确的。问题在于自动完成弹出窗口。它周围有这个非常大胆的阴影,我就是无法摆脱它。
不要误会我的意思,我仍然想要阴影,但是一个微妙的阴影,只在弹出窗口的底部,而不是在它周围(尤其是在顶部,这真的很奇怪)。
像这样:
这是我的样子(抱歉图片太大):
代码
activity_main.xml:
<AutoCompleteTextView
android:id="@+id/actvSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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:width="1dp" android:color="#E0E0E0" />
</shape>
</item>
</selector>
如果我们在 AutoCompleteTextView 中设置 android:popupBackground="@null" 并将适配器行的背景设置为白色,我们就可以实现这一点。希望它能帮助你。
这个问题已经有点老了,但无论如何。我刚刚解决了这个问题。我使用 android:popupBackground="@null"
进行自动完成,但它在 ANDROID 6 上无法正常工作(我刚刚测试过)。
不要使用 android:popupBackground="@null"
,而是使用 android:popupBackground="@android:color/transparent"
(它也适用于 Android 4.4 和 5.0)。
我最后做的是使用 ListView
.
手动创建自动完成
虽然经过了一番摸索,但现在我的设计完全符合我的想法。
使用 android:popupElevation="0"
<AutoCompleteTextView
android:id="@+id/actvSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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" />
我正在尝试创建一个 full width auto complete text field。
到目前为止,我认为文本字段本身看起来是正确的。问题在于自动完成弹出窗口。它周围有这个非常大胆的阴影,我就是无法摆脱它。
不要误会我的意思,我仍然想要阴影,但是一个微妙的阴影,只在弹出窗口的底部,而不是在它周围(尤其是在顶部,这真的很奇怪)。
像这样:
这是我的样子(抱歉图片太大):
代码
activity_main.xml:
<AutoCompleteTextView
android:id="@+id/actvSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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:width="1dp" android:color="#E0E0E0" />
</shape>
</item>
</selector>
如果我们在 AutoCompleteTextView 中设置 android:popupBackground="@null" 并将适配器行的背景设置为白色,我们就可以实现这一点。希望它能帮助你。
这个问题已经有点老了,但无论如何。我刚刚解决了这个问题。我使用 android:popupBackground="@null"
进行自动完成,但它在 ANDROID 6 上无法正常工作(我刚刚测试过)。
不要使用 android:popupBackground="@null"
,而是使用 android:popupBackground="@android:color/transparent"
(它也适用于 Android 4.4 和 5.0)。
我最后做的是使用 ListView
.
虽然经过了一番摸索,但现在我的设计完全符合我的想法。
使用 android:popupElevation="0"
<AutoCompleteTextView
android:id="@+id/actvSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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" />