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);
相关推荐
caimouse10 小时前
reactos编码规范
c语言·开发语言
xieliyu.14 小时前
Java算法精讲:双指针(三)
java·开发语言·算法
数智工坊15 小时前
机器人运动控制:采样、优化与学习三大流派深度对比与实战
android·学习·机器人
CryptoPP15 小时前
快速对接东京证券交易所API数据:实战指南与代码示例
开发语言·人工智能·windows·python·信息可视化·区块链
ZC跨境爬虫15 小时前
跟着 MDN 学JavaScript day_7:数学运算与逻辑判断实战测试
开发语言·前端·javascript·学习·ecmascript
阳区欠16 小时前
【LangChain】LLM基础介绍
开发语言·python·langchain
Jinkxs16 小时前
Java 跨域14-Java 与区块链(Hyperledger)集成
java·开发语言·区块链
故渊at16 小时前
第二板块:Android 四大组件标准化学理 | 第八篇:Service 后台执行实体与优先级
android·gitee·service·前台服务·后台服务
会Tk矩阵群控的小木17 小时前
安卓群控系统对于游戏工作室实战教程
android·运维·游戏·adb·开源软件·个人开发