android – 如何在微调器中包装冗长的文本?

发布时间:2020-09-09 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了android – 如何在微调器中包装冗长的文本?编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Spinner does not wrap text — is this an Android bug?                                    14个
我在一个单独的行的表布局视图中有两个微调器和EditText控件.微调器中填充了数据.我的问题是填充到微调器中的数据(文本)太长而不适合屏幕大小.因此,旋转器被迫拉伸不必要地拉伸另一排上的其他控件.

对于我来说,在旋转器中显示文本是必须的.因此,使用省略号不是一种选择.如果有可能我怎样才能在纺纱机上包装冗长的文字?

解决方法

步骤1.带有包装文本的TextView

首先要强制简单的TextView来包装文本.这很简单:

<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:singleLine="false"
    android:text="very long text that will be wrapped to next line" />

请注意这里的singleLine属性.

第2步.自定义布局

现在我们应该以某种方式在Spinner使用的TextView中将singleLine属性设置为false,以显示列表中的项目.

在您的代码中,您可能会在其中创建适配器以将其与Spinner一起使用:

this.mAdapter = ArrayAdapter.createFromResource(this,R.array.Planets,android.R.layout.simple_spinner_dropdown_item);

我们的想法是将android.R.layout.simple_spinner_dropdown_item布局复制到您的项目中.然后通过在CheckedTextView中将singleLine属性设置为false来修改它:

为此,使用下一个代码将文件添加到名为multiline_spinner_dropdown_item.xml的res / layout文件夹中:

<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="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:ellipsize="marquee" />

请注意,此文件与android.R.layout.simple_spinner_dropdown_item布局相同,但现在将singleLine设置为false.

步骤3.使用自定义布局创建适配器

修改您的适配器创建代码:

this.mAdapter = ArrayAdapter.createFromResource(this,R.layout.multiline_spinner_dropdown_item);

以下是Android SDK中经过修改的SpinnerActivity示例的屏幕截图:

总结

以上是编程之家为你收集整理的android – 如何在微调器中包装冗长的文本?全部内容,希望文章能够帮你解决android – 如何在微调器中包装冗长的文本?所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478
编程之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!