带有 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"
/>
我正在使用 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"
/>