我正在尝试创建在所有版本的 Android 上看起来都相同的 Spinner,回到 Froyo。为此,我正在使用HoloEverywhere。一些微调器项目文本不止一行,我希望它换行。
使用默认布局,android.R.layout.simple_spinner_dropdown_item
或HoloEverywhere 的替代它,省略文本而不是换行。
以 HoloEverywhere 的布局作为自定义布局的起点,singleLine
设置为false
、ellipsize
设置为none
和layout_height
设置为wrap_content
无济于事,文本仍然被截断。
我可以TextView
通过将a包裹在下拉列表中正确包裹文本LinearLayout
,但在Froyo设备上,这会弄乱所选项目的显示:
此方法适用于较新的设备。下拉项目布局适用于所有设备。但是,当我使用自定义下拉项布局时,Froyo会将此奇怪的文本重叠。每个选择都堆积在最后一个之上。
这个问题: Spinner does not wrap text -- 这是一个 Android 错误吗?关于 Spinners 中的文本换行表明,唯一的方法是从头开始重新创建样式而不继承,但这听起来很疯狂并且容易出现问题。
my_simple_list_item_1.xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/android:text1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:ellipsize="marquee"
android:layout_gravity="center_vertical"
android:singleLine="false"/>
</LinearLayout>
爪哇:
import org.holoeverywhere.widget.Spinner;
spinner1.setAdapter(ArrayAdapter.createFromResource(this,
R.array.array_of_strings, R.layout.my_simple_list_item_1));