【问题标题】:TextInputLayout with AutoCompleteTextView not showing full text of item带有 AutoCompleteTextView 的 TextInputLayout 不显示项目的全文
【发布时间】:2021-03-29 10:13:03
【问题描述】:

我正在使用带有样式 Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu 的 com.google.android.material.textfield.TextInputLayout 并且还使用 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>

主题.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"/>

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

【问题讨论】:

  • 添加你用来设置适配器的代码
  • @AgentP 好的。编辑了问题
  • 你创建了 dropdown_menu_item.xml 吗?如果是这样,也请添加
  • @AgentP 更新了问题。
  • 您已将maxLines 指定为1?

标签: java android autocompletetextview material-components-android android-textinputlayout


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多