AutoCompleteTextView将宽度设置为最长的适配器项

时间:2020-02-10 11:45:52

标签: android android-adapter autocompletetextview mdc-components

我有一个AutoCompleteTextView(作为Exposed Dropdownmenu的一部分)。我不想为其设置固定宽度,而是由适配器中最宽的项目确定宽度。因此,我将宽度设置为wrap_content,但是每次选择另一个项目时,宽度都会改变。

示例:我目前有两个项目:

"short" (shown by default)
"longitem"

这呈现为

enter image description here

当我现在选择“ longitem”项时,宽度会增加:

enter image description here

嗯,我知道这会发生。但这很烦人。而不是所有这些大小调整,我希望AutoCompleteTextView永久(无论选择了哪个项目)具有选择“ longitem”时的大小。我该怎么办?

使用的代码(与official exposed dropdown documentation相同)

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"
    />

适配器(科特琳)

val myValues = arrayOf("short", "longitem")

val adapter = ArrayAdapter<String>(
    requireContext(), 
    R.layout.dropdown_menu_popup_item,
    myValues
)

binding.exposedDropdown.setAdapter(adapter)

0 个答案:

没有答案