Android 开发问题:TextView 内容超过宽度时,默认不会换行

  • 在 Android 开发,TextView 内容超过宽度时,默认不会换行,如下例
xml 复制代码
<TextView
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:text="这是一段很长的文本,这是一段很长的文本,这是一段很长的文本" />
处理策略
  1. 使用 singleLine 属性,虽然已废弃,但有效
xml 复制代码
<TextView
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:singleLine="true"
    android:text="这是一段很长的文本,这是一段很长的文本,这是一段很长的文本" />
复制代码
# singleLine 属性已废弃

@deprecated This attribute is deprecated.
Use maxLines instead to change the layout of a static text,
and use the textMultiLine flag in the inputType attribute instead for editable text views
(if both singleLine and inputType are supplied,
the inputType flags will override the value of singleLine).
  1. 使用 maxLines 属性
xml 复制代码
<TextView
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:text="这是一段很长的文本,这是一段很长的文本,这是一段很长的文本" />
  1. 使用 maxLines 属性结合 ellipsize 属性添加省略号
xml 复制代码
<TextView
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:maxLines="1"
    android:text="这是一段很长的文本,这是一段很长的文本,这是一段很长的文本" />
  • ellipsize 属性的属性值如下
属性值 说明
end 在结尾显示省略号
start 在开头显示省略号
middle 在中间显示省略号
  1. 使用跑马灯效果
xml 复制代码
<TextView
    android:id="@+id/tv_test"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:marqueeRepeatLimit="marquee_forever"
    android:singleLine="true"
    android:text="这是一段很长的文本,这是一段很长的文本,这是一段很长的文本" />
java 复制代码
TextView tvTest = findViewById(R.id.tv_test);

tvTest.setSelected(true);
相关推荐
Kapaseker4 小时前
Kotlin Toolchain 0.11 发布:主要是把 Amper 干没了
android·kotlin
三少爷的鞋6 小时前
Android 现代架构不需要事件总线进阶篇
android
杉氧20 小时前
深入理解 Compose 重组机制:快照系统如何驱动 UI 精准刷新?
android·架构·android jetpack
召钱熏20 小时前
状态枚举正确≠渲染正确:一个语音按钮的状态机边界修复实录
android·前端
杉氧21 小时前
深度解析:Jetpack Compose 核心架构与底层原理 —— 十年安卓老兵的“破茧重生”
android·架构·android jetpack
通玄21 小时前
Jetpack Compose 入门系列(七):ViewModel 与界面状态管理
android
落魄Android在线炒饭21 小时前
Android Framework 开发技巧:android.jar 生成与系统快速编译验证
android
如此风景1 天前
Kotlin Flow操作符学习
android·kotlin
plainGeekDev1 天前
GreenDAO → Room
android·java·kotlin
weiggle1 天前
第八篇:ViewModel + Compose——生产级状态管理实践
android