我可能会遗漏一些简单的内容,但我有一个 AutoCompleteTextView ,其中包含一些非常长的项目。单击一个时,它会在EditText中正确显示文本并将其跨越多行。
但是,我希望它在弹出窗口中也有多行,以便用户可以看到他们正在选择哪个项目。
这是我的自定义布局:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false" />
这是我对数组和适配器的初始化:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.dropdown_item_wrap_line,
getResources().getStringArray(R.array.building_descriptions));
mBuildingDesc.setAdapter(adapter);
答案 0 :(得分:11)
我的猜测是,AutoCompleteTextView
仅限于singleLine
,因此使用默认TextView
的自定义布局应该可以正常工作。
您需要制作一个新的Layout
并将其命名为custom_item.xml
,然后按照这样做...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/autoCompleteItem"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:textSize="14sp"
/>
</LinearLayout>
然后在AutoCompleteTextView上使用Adapter时
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.custom_item, R.id.autoCompleteItem, StringArray);
textView.setAdapter(adapter);