参考:
1.Ellipsize not working for textView inside custom listView
2.Ellipsize functionality in TextView does not put ellipsis for single line multi-word text
当TextView中的文本内容长度超过了TextView的宽度,如果是单行,超出部分将被截断,此时我们都会使用android:ellipsize,该属性可以用了来省略显示文本,但很可能不像我们原以为的那样工作。
比如,我们配置了这样一个标准的TextView
<TextView
android:text="如果是一段很长的文本,内容长度超出了这个View的宽度,我们想要一行显示,且超出部分在末端以省略号'……'表示,但实际上没有这样工作,而是文本超出的多余的部分被截断了。如:文本内容为'My name is Eric, i am a good boy.'被截断成了'My name is Eric'而不是'My name is Eric.....' "
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end" />
可以设置singleLine="true"解决问题,然而这个方法已经被废弃了不推荐使用,我们可以简单实现和singleLine相同的效果(红字部分)。正常工作的解决办法如下
android:ellipsize="end"
android:lines="1"
android:scrollHorizontally="true"
分享到:
相关推荐
在Android开发中,`android:ellipsize`是一个非常重要的属性,它用于控制当TextView中的文本超过指定宽度时如何进行省略显示。这个属性主要应用于显示长文本,尤其是在有限的空间内,如列表项或者对话框中,使得内容...
在Android开发中,实现跑马灯效果通常是为了在有限的空间内展示较长的文本内容,而TextView控件提供了这样的功能。跑马灯效果是指文本在TextView内自动滚动,从一端移动到另一端,循环往复,给人一种类似跑马灯的...
而设置`android:ellipsize="middle"`则期望省略号出现在文本的中间,但是当结合`android:maxLines`限制了最多显示的行数后,"middle"模式往往无法正常工作,只会显示"end"模式的效果。 为了解决这个问题,我们可以...
1. **`android:ellipsize="start"`**:表示当文本超出显示区域时,在文本的开头添加省略号(…),而保留文本的结尾部分完整。 2. **`android:ellipsize="end"`**:这是最常用的一种方式,当文本过长时,在文本的...
然而,有时设置 `ellipsize` 属性并未按预期工作,特别是当文本行数超过三行时。本文将深入探讨这个问题,并提供一种解决方案。 首先,我们需要了解 `ellipsize` 属性。在 `TextView` 中,`ellipsize` 属性用于指定...
`android:ellipsize`属性用于指定当文本超过单行时如何处理,我们可以将其设置为`marqueeRepeatLimit`,使其产生滚动效果。 不过,`android:singleLine`属性在API 17及以上版本已被弃用,此时应使用`android:...
`android:singleLine`属性用于将文本限制为一行,`android:ellipsize`属性则控制当文本超出视图范围时如何处理。在实现跑马灯效果时,我们通常会结合这两个属性。但是,从Android API 26(即Android Oreo)开始,`...
在Android开发中,`TextView`是用于展示文本的常用组件,但默认情况下,它并不支持自动适配多行显示。为了使`TextView`能够适应不同长度的文本,我们需要进行一些定制化处理,尤其是在处理长文本时,可能需要考虑...
1. `ellipsize="start"`:省略号会出现在文本的开头,通常不常见,因为用户可能无法理解省略的内容是什么。 2. `ellipsize="end"`:这是最常见的设置,省略号出现在文本末尾,保留了文本的开头部分,让用户能大致...
在Android开发中,有时我们需要创建一个展示多条信息的视图,例如新闻标题,而屏幕空间有限时,我们可以实现文字的横向自动滚动效果。这个功能可以让用户在有限的屏幕上查看更多的内容,同时保持良好的用户体验。...
TextView可以通过 android:ellipsize=end android:singleLine=true实现单行省略, 但是当我们要是图标跟着文字后面,第一时间想到用LinearLayout的layout_weight 来做,但是做出来效果不一样。 后来竟然忘记这个属性...
- **作用**:设置文本对齐方式,虽然`EditText`本身不支持该属性,但在其父类`TextView`中可用。 - **示例**:`android:textAlign="center"` **10. android:textColorHighlight** - **作用**:设置选中文本的...
- `android:textStyle`: 可以设置文本样式,包括`normal`(正常)、`bold`(粗体)、`italic`(斜体)或它们的组合。 - `android:textAllCaps`: 将文本转换为大写,常用于标题。 3. **文本对齐** - `android:...
`android:maxLength`可以限制输入字符的最大数量,但需要注意,这个属性不适用于动态加载的文本。 通过上述配置,`TextView`就能根据设定的行数自动换行并在超出时显示省略号了。在`AutoReturnTextDemo`这个示例...
通常情况下,系统会自动分配焦点,但为了确保在所有情况下都能正常工作,我们可以通过`android:focusable`和`android:focusableInTouchMode`属性来手动控制。 另外,有时可能需要在代码中启动或停止跑马灯效果,这...
在Android开发中,`TextView`是用于展示文本的最基础且重要的组件。它不仅可以显示单行文本,还能处理复杂的文字排版,包括自动换行。本文将深入探讨`TextView`在处理文字排版和换行方面的知识,以及如何优化其性能...
`android:ellipsize`属性用于指定当文本超出指定行数时如何进行省略,常见的有`end`(在末尾添加省略号)和`marquee`(跑马灯效果)等。 实现TextView的展开和折叠通常有两种方法:使用内置的`android:ellipsize`...
在上面的示例中,`android:maxLines="2"`限制了`TextView`最多显示两行,`android:ellipsize="end"`表示当文本超出限制时,在末尾进行省略。 接着,为了实现"点击查看更多"的功能,我们需要为`TextView`添加点击...
3. android:ellipsize:设置当文字过长时的显示方式,例如 start 表示在开头显示省略号,end 表示在结尾显示省略号,middle 表示在中间显示省略号,marquee 表示以跑马灯方式显示。 二、文本编辑属性 1. android:...