gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 23:02:55 26 4
gpt4 key购买 nike

我在单独一行的表格布局 View 中有两个微调器和 EditText 控件。微调器中填充了数据。我的问题是填充到微调器中的数据(文本)太长而无法适应屏幕尺寸。因此,微调器被迫拉伸(stretch),不必要地拉伸(stretch)另一行上的其他控件。

我必须在微调器中显示文本。因此,使用省略号不是一种选择。如果可能的话,我怎样才能将冗长的文本包装在微调器上?

最佳答案

第 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.xmlres/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.array.Planets,
R.layout.multiline_spinner_dropdown_item);

这是来自 Android SDK 的修改后的 SpinnerActivity 示例的屏幕截图:

enter image description here

关于android - 如何在微调器中包装冗长的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6107500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com