Android中AutoCompleteTextView下拉长文本无法多行显示如何解决?
你当前配置不生效的核心原因是下拉项布局的固定高度限制了文本展开,?android:attr/listPreferredItemHeight是系统预设的固定列表项高度,不会随文本行数增加自动撑开,其次缺少必要的多行文本属性配合,按照以下步骤修改即可生效:
步骤1:修改下拉项布局(dropdown_item_multiline.xml)
将固定高度改为自适应,同时保留最小高度保证短文本的交互体验,补充多行显示属性:
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/dropDownItemStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:ellipsize="none" android:singleLine="false" android:inputType="textMultiLine" android:paddingVertical="8dp" android:textAppearance="?android:attr/textAppearanceLargePopupMenu" />
新增属性说明:
minHeight:保证短文本列表项仍然保持原有的标准交互高度,不会太窄inputType="textMultiLine":明确开启多行显示模式,和singleLine=false配合生效paddingVertical:避免多行文本上下贴边,显示更美观
步骤2:补充AutoCompleteTextView的下拉宽度配置
在原有AutoCompleteTextView布局中新增dropDownWidth属性,保证下拉列表宽度和输入框一致,避免宽度不足导致显示异常:
<AutoCompleteTextView android:id="@+id/customerField" android:layout_width="match_parent" android:layout_height="50dp" android:inputType="text" android:dropDownWidth="match_parent" />
步骤3:适配器配置校验
你当前的适配器代码无需修改,只要确认Utils.getCustomersNames返回的字符串集合没有手动截断、加特殊控制字符的逻辑即可。
内容的提问来源于stack exchange,提问作者Salman
相关产品推荐
相关产品推荐

