如何在Android上对长文本进行文本换行

6
在我的应用程序中,我有一个文本视图,其中包含长文本。我需要像Android模拟器->联系人->电话(联系人中的拨号键盘屏幕截图)中一样的文本换行。
但是在我的应用程序中,我得到了如下图所示的文本换行方式:
我已经尝试了几种方法,但都不满足我的要求。我不需要文本视图右上角的“...”。相反,我希望将文本包装成第一张图片(Android模拟器->联系人->电话)中的方式。怎么做?请帮帮我。谢谢。

查看这个拨号器示例可能会有所帮助:简单的拨号应用程序 - ρяσѕρєя K
3个回答

8

我认为将以下属性设置到你的TextView中应该有助于实现这种行为:

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="none"
android:singleLine="false"

5
如何将这些应用于动态创建的文本视图? - Orion
singleLine已被弃用,因为它的默认值为false。 - Orri
check my answer below - blueware

1

Android Studio 3.5

您只需要在textView内的constraintlayout中设置一个End约束即可:

app:layout_constraintEnd_toEndOf="parent"


1

另外,您可以按照Android文档中的说明,使用支持库的自动调整大小功能来调整TextViews的大小。

如何使用?

对于API 26及以上版本:

<?xml version="1.0" encoding="utf-8"?>
<TextView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:autoSizeTextType="uniform" />

为了支持早期版本的Android,您可以使用:

<?xml version="1.0" encoding="utf-8"?>
<TextView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    app:autoSizeTextType="uniform" />

如果您有一个可以增加/减小 TextView 大小的选项,那么可以这样做:
对于 API 26 及更高版本:
<?xml version="1.0" encoding="utf-8"?>
<TextView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:autoSizeTextType="uniform"
    android:autoSizeMinTextSize="12sp"
    android:autoSizeMaxTextSize="100sp"
    android:autoSizeStepGranularity="2sp" />

对于早期版本:

<?xml version="1.0" encoding="utf-8"?>
<TextView
      android:layout_width="match_parent"
      android:layout_height="200dp"
      app:autoSizeTextType="uniform"
      app:autoSizeMinTextSize="12sp"
      app:autoSizeMaxTextSize="100sp"
      app:autoSizeStepGranularity="2sp" />

1
为什么要给我的答案点踩?如果它没有帮助,那么你可以编辑它! - blueware
1
你的答案对于API 26+和早期版本完全相同。 - Errol
1
@Errol,这不一样。请检查早期版本的属性“app:...”和API 26及更高版本的“android:...”。我测试了两个都可以工作! - blueware

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接