У меня есть AutoCompleteTextView (как часть Открытого раскрывающегося меню ). Я не хочу устанавливать фиксированную ширину, вместо этого ширина будет определяться самым широким элементом из адаптера. Поэтому я установил ширину wrap_content, но она меняется каждый раз, когда выбирается другой элемент.
Пример: в настоящее время у меня есть два элемента:
"short" (shown by default)
"longitem"
Это отображается как
Теперь, когда я выбираю «длинный элемент», ширина увеличивается:
Ну, я понимаю, что это происходит. Но это очень раздражает. Вместо всех этих адаптаций размера я хочу, чтобы AutoCompleteTextView постоянно (независимо от того, какой элемент выбран) имел размер, который он имеет при выборе «longitem». Как я могу это сделать?
Используемый код (как в официальной раскрытой раскрывающейся документации )
dropdown_menu_popup_item. xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:padding="16dp"
android:ellipsize="end"
android:maxLines="1"
android:textAppearance="?attr/textAppearanceSubtitle1"
tools:text="some item (tool text)" />
файл макета:
<AutoCompleteTextView
android:id="@+id/exposed_dropdown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:editable="false"
android:text="short"
/>
Адаптер (Kotlin)
val myValues = arrayOf("short", "longitem")
val adapter = ArrayAdapter<String>(
requireContext(),
R.layout.dropdown_menu_popup_item,
myValues
)
binding.exposedDropdown.setAdapter(adapter)