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);
相关推荐
南棱笑笑生1 分钟前
20260904实测给飞凌OK3576-C开发板刷入Rockchip原厂的IMG固件【使用飞凌的DTS】切换串口波特率为1.5Mbps
c语言·开发语言·rockchip
平头哥技术团队34 分钟前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
乌萨奇也要立志学C++35 分钟前
【洛谷】kmp算法
开发语言·算法
传奇开心果编程1 小时前
【Rust入门知识点学与练】第4课:条件判断 if / else
开发语言·学习·rust
m0_380743871 小时前
给 Claude API 调用补上超时重试和错误分类
开发语言·人工智能·php
Draw Stars1 小时前
Git BASH安装教程
开发语言·git·bash
vortex51 小时前
一文讲透 Zsh 与 Bash 的区别
开发语言·bash
千谦阙听1 小时前
C++类和对象(中):默认成员函数、构造与析构、拷贝构造、运算符重载
开发语言·c++·学习
冬木家居2 小时前
40㎡客厅变形记,小家住出大自由[特殊字符]
android·经验分享·笔记·智能家居·微信公众平台
AFinalStone2 小时前
Android 7系统无障碍服务(六)输入事件拦截与 TouchExplorer
android·无障碍服务