私は AutoCompleteTextView を持っています ( Exposed Dropdownmenuの一部として)。固定幅を設定したくありません。代わりに、幅はアダプターの最も広いアイテムによって決定されます。そこで、wrap_content に幅を設定しましたが、これは別のアイテムが選択されるたびに変わります。
例: 現在、次の 2 つのアイテムがあります。
"short" (shown by default)
"longitem"
これは次のようにレンダリングされます
「longitem」アイテムを選択すると、幅が増加します。
まあ、私はこれが起こることを理解しています。しかし、それは非常に迷惑です。これらすべてのサイズ調整の代わりに、「longitem」が選択されたときのサイズを AutoCompleteTextView に永続的に (どのアイテムが選択されていても) 持つようにします。これどうやってするの?
使用されたコード(公開された公式のドロップダウン ドキュメントのように)
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)

