我有一个 AutoCompleteTextView (作为Exposed Dropdownmenu的一部分)。我不想为其设置固定宽度,而是由适配器中最宽的项目确定宽度。所以我将宽度设置为 wrap_content,但是每次选择另一个项目时都会改变。
示例:我目前有两个项目:
"short" (shown by default)
"longitem"
这呈现为
当我现在选择“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)