Android 我可以限制TextView';有多少个字符?
我现在拥有的是TextView元素的列表视图。每个TextView元素显示一个文本(文本长度从12个单词到100个以上不等)。我想让这些文本视图显示文本的一部分(比如说20个单词或大约170个字符)Android 我可以限制TextView';有多少个字符?,android,textview,Android,Textview,我现在拥有的是TextView元素的列表视图。每个TextView元素显示一个文本(文本长度从12个单词到100个以上不等)。我想让这些文本视图显示文本的一部分(比如说20个单词或大约170个字符) 如何将TextView限制为固定的字符数?您可以扩展TextView类并覆盖setText()函数。 在此函数中,您可以检查文本长度或单词注释。以下是一个示例。我使用maxLength属性限制大小,使用maxLines属性将其限制为一行,然后使用ellipsize=end将“…”自动添加到任何被截断
如何将TextView限制为固定的字符数?您可以扩展TextView类并覆盖setText()函数。
在此函数中,您可以检查文本长度或单词注释。以下是一个示例。我使用maxLength属性限制大小,使用maxLines属性将其限制为一行,然后使用ellipsize=end将“…”自动添加到任何被截断的行的末尾
<TextView
android:id="@+id/secondLineTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:maxLength="10"
android:ellipsize="end"/>
您可以使用TextView类的setEllipsize方法 添加了挂起点的TextUtil类的常量
在文本视图中使用以下代码
android:maxLength="65"
享受…如果您对xml解决方案不感兴趣,您可以这样做:
String s="Hello world";
Textview someTextView;
someTextView.setText(getSafeSubstring(s, 5));
//the text of someTextView will be Hello
如&,使用
应该足以实现上述目标。我使用
maxEms
属性完成了此操作
<TextView
android:ellipsize="end"
android:maxEms="10"/>
编程Kotlin
切断文本的开头:
val maxChars = 10000
if (helloWorldTextView.text.length > maxChars) {
helloWorldTextView.text = helloWorldTextView.text.takeLast(maxChars)
}
val maxChars = 10000
if (helloWorldTextView.text.length > maxChars) {
helloWorldTextView.text = helloWorldTextView.text.take(maxChars)
}
剪掉文本的结尾:
val maxChars = 10000
if (helloWorldTextView.text.length > maxChars) {
helloWorldTextView.text = helloWorldTextView.text.takeLast(maxChars)
}
val maxChars = 10000
if (helloWorldTextView.text.length > maxChars) {
helloWorldTextView.text = helloWorldTextView.text.take(maxChars)
}
我正在分享一个示例,其中我设置了maxLength=1,即使用maxLines属性将其限制为一条直线,然后使用ellipsize=end将“…”自动添加到任何被截断的直线的末尾
<TextView
android:id="@+id/secondLineTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:maxLength="10"
android:ellipsize="end"/>
请注意:版面宽度为120dp,即120dp后的任何文本
超过将触发“省略=结束”属性
直接粘贴下面的代码进行检查
<TextView
android:layout_width="120dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:maxLength="40"
android:text="Can I limit TextView's number of characters?"
android:textColor="@color/black"
android:textSize="12sp"
android:textStyle="bold" />
.“然后使用省略号=选框在任何一行的末尾自动添加一个“…”听起来很有希望。我会试试看。@Booger-android:ellipsize=“marquee”不要在末尾附加省略号(…),它会覆盖截断文本的结尾,作为限制的标志。android:ellipsize=“end”将在末尾添加省略号(…),而android:ellipsize=“start”将在末尾添加省略号start@ajdeguzman如果我想在第二行显示剩余的文本,我该怎么办。我已经设置了maxLines=2,并且没有包含ellipsize参数。我知道还有一个称为em的东西,但我没有得到关于它如何工作的明确解释。我认为布局宽度与触发器ellipsize属性有关。解释得很好的示例,请遵循比计算文本长度或单词CONND更好的方法。更好的方法是使用“maxLines”属性和“ellipsize”属性以达到所需的效果。