带有 AutoCompleteTextView 的 TextInputLayout 不显示项目的全文

TextInputLayout with AutoCompleteTextView not showing full text of item

我正在使用 com.google.android.material.textfield.TextInputLayout 和样式 Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu,并且还使用了 AutoCompleteTextView。这些使输入成为下拉列表。但现在的问题是列表的长文本不会显示完整的项目文本。如何显示所有文本并使其多行显示?

 <com.google.android.material.textfield.TextInputLayout
    style="@style/CustomStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/label_input">

     <AutoCompleteTextView
       android:id="@+id/autocomplete"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:inputType="text"
       android:inputType="none" />

</com.google.android.material.textfield.TextInputLayout>

themes.xml

<style name="LayoutDropdown" parent="Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu">
   <item name="boxBackgroundColor">@color/white</item>
   <item name="android:textColor">@color/black</item>
   <item name="colorControlNormal">@color/black</item>
   <item name="colorControlActivated">@color/black</item>
   <item name="colorControlHighlight">@color/black</item>
</style>

Java

ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.dropdown_menu_item, list);
AutoCompleteTextView dropdown = findViewById(R.id.autocomplete);
dropdown.setAdapter(adapter);
dropdown.setKeyListener(null);

dropdown_menu_item.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:ellipsize="end"
    android:maxLines="1"
    android:textAppearance="?attr/textAppearanceSubtitle1"/>

这是结果。它不会在选择下拉菜单中显示全文。

更改用于每个项目的布局。
使用类似:

ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.dropdown_menu_item,R.id.item, list);

与:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/item"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ...
        />

</LinearLayout>

此外,如果您还想在 AutoCompleteTextView 中显示长文本,请使用 android:inputType="textMultiLine"

  <com.google.android.material.textfield.MaterialAutoCompleteTextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:inputType="textMultiLine"
                     />