0

私は 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)
4

0 に答える 0