10

我最近刚刚在我的安卓应用中实现了全息主题。执行此操作后,我拥有的任何微调器(下拉项长多行)都不会将文本换行到多行。每个下拉项目都保留在一行上,并被截断到一定长度。

这是我的微调器下拉资源的 xml

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="none" />

这适用于 ICS 和 holo 主题之前的旧版本的 android。

有没有其他人遇到过这个问题?

4

1 回答 1

0

正如我在:Spinner 不换行中提到的那样——这是一个 Android 错误吗?

我认为android上有一个错误。你可以试试这个。从文本中删除空格,然后显示它会正常工作。如果 textview 的长度是 < 字符串的长度,它会忽略空格后面的所有字符。对于解决方法,您可以尝试以下操作:

使用示例代码将文件添加到名为 multiline_spinner_dropdown_item.xml 的 res/layout 文件夹:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/sample_text"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="false"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:ellipsize="marquee" />

当你创建微调器时,从这个布局创建它。

就像是 :

ArrayAdapter.createFromResource(this, items, R.layout.multiline_spinner_dropdown_item);

基本上,将 android.R.layout.simple_spinner_dropdown_item 布局复制到项目中,并通过在 CheckedTextView 中将 singleLine 属性设置为 false 来修改布局。

于 2013-02-07T13:31:55.010 回答