Вот мой AutoCompleteTextView
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:dividerHeight="4dp"
android:gravity="center"
android:inputType="textCapWords|textAutoCorrect"
android:textColor="@color/font_autocomplete"
android:textSize="18sp" />
Кто-нибудь знает, почему установка android:dividerHeight
не имеет эффекта?
AutoCompleteTextView представляет собой составной вид - он получил как компонент EditText
, так и плавающий компонент DropDown
. Компонент EditText
прост в стиле, но DropDown
затруднен, потому что он представляет собой смесь атрибутов самого AutoCompleteTextView
и стилей, заданных в теме, через android:dropDownListViewStyle
.
Если вы хотите изменить разделители, вам нужно создать тему и указать на стиль, который не является сразу очевидным решением:
<style name="MyTheme">
<item name="android:dropDownListViewStyle">@style/DropDownListViewStyle</item>
</style>
<style name="DropDownListViewStyle">
<item name="android:dividerHeight">4dp</item>
</style>
Обратите внимание, что эти изменения стиля будут применяться во всем приложении. Поэтому, если в вашем пользовательском интерфейсе есть другие компоненты DropDown
, они также будут затронуты.
Выпадающий атрибут пользовательского элемента Autocompletetextview может быть реализован с использованием макета элемента и его возможности. Для полной справки http://www.zoftino.com/android-autocompletetextview-custom-layout-and-adapter
Пользовательский макет
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textView"
style="?android:attr/dropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:ellipsize="marquee"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLargePopupMenu"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="6dp"
android:enabled="false"
android:background="@drawable/divider"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
</android.support.constraint.ConstraintLayout>
Пользовательский
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:tint="#42a5f5"
android:shape="rectangle">
<corners
android:radius="4dp"/>
<size
android:height="6dp" />
<solid android:color="#42a5f5" />
</shape>