Установка AutoCompleteTextView высота делителя не влияет на Android

1

Вот мой 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 не имеет эффекта?

Теги:
android-layout
autocompletetextview

2 ответа

5

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, они также будут затронуты.

  • 0
    Спасибо за ответ (+1). Есть ли способ не повлиять на все приложение с этим, однако сложным?
  • 0
    Вы можете применить его к действию следующим образом: <activity android: theme = "@ style / MyTheme">
0

Выпадающий атрибут пользовательского элемента 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> 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню