Android中TextView中添加的文本上下两行又重叠
如图显示的情况
代码如下:
我在网上查了查,网上只有显示EditText出现类似情况的,添加android:layerType=”software”这句话,但必须得使用 API level 11 或者更高,我改成了 API level 12,但仍然还是同样的情况,所以该方法不起作用。
然后我以为是高度不够,当将高度改变,留有大块的空间,但仍然没有改变。改变行间距为1dp甚至去掉行间距仍然无法使用。
但当我将内容增加到文本超过3行时,第三行和第二行不在重叠了。
然后我试了试将maxlines改成了2行,当文本刚好在两行时放生重叠,超过两行时重叠现象消失。
然后我又看了看Java程序,发现我在这个textView设置了自定义的字体,代码如下:
textViewContent.setTypeface(typeFace);
当将其删去后,重叠现象消失,在这时我才知道是字体的缘故。
后来又试了试,保留自定义字体,将 android:ellipsize="end"取掉,则不再出现重叠。我想是不是ellipsize=end的关系,所以改成start,middle,marquee,则重叠现象出现,改成none则重叠现象消失。所以最后确定,自定义字体与android:ellipsize属性冲突,造成了,版式错误出现重叠。
但为什么会这样,我在网上找了找答案,网上说是:
使用其他字库,都会消耗程序的空间,这是要非常注意的。而且这些字库有时并不能完全提供你所需要的文字。
举个例子,省略方式。当文字太多的时候,可以通过省略号省略后面的内容,省略号是使用“…”作为一个字体,可通过android:ellipsize属性进行设置。如果我们需要使用省略功能,需要确保字体具有省略号。此外,为了保证长度的一直,Android会进行填充处理,除了将一个字符更换为省略符合外,后面的字符将更换为一个特殊的Unicode字符,‘ZERO WIDTH NO-BREAK SPACE’ (U+FEFF)。这个字符并占用任何可视的位置,但是保障了string具有同样的长度。不是所有的字体都支持这个特殊的字符,可能会引发一些乱码现象。
这是我找到最靠谱的答案,也有说是超过三行,android:ellipsize会出问题,但我试了一下,不是android:ellipsize问题。
如果这个答案不对或者需要补充的,请告诉我,不胜感谢。
解决方法是删除自定义文本,或者取掉android:ellipsize两种方法。
总的来说,以后再使用自定义字体时,需要注意, android:ellipsize="end"和 android:maxLines="3"属性,注意可能发生的排版重叠。
Android中TextView中添加的文本上下两行又重叠相关推荐
- android动态添加圆,Android开发中TextView 实现右上角跟随文本动态追加圆形红点
在一个比较坑的需求里,一段文字右上角需要追加一个圆形红点.最右侧有个金额,红点动态随着文字移动,然后各种摆布局,一下午坑死我了.后来果断放弃.然后就想试试直接自定义view来实现这个需求. 最坑的就是 ...
- android 决TextView中MaxLines与ellipsize=end冲突问题
今天,讲讲如何在多行文本后显示省略号. TextView控件有一个属性是ellipsize,指的是当文字内容长度超过TextView大小时显示问题,一般情况下我们都是用省略号表示,常用的情况有以下四种 ...
- Android 拦截TextView中超链接点击事件
Android 拦截TextView中超链接的点击事件 1.在xml中为TextView添加autoLink属性 <TextView...android:autoLink = "web ...
- 替代微软txt文本编辑器_如何在Microsoft Excel中向对象添加替代文本
替代微软txt文本编辑器 Alternative text (alt text) allows screen readers to capture the description of an obje ...
- 如何在Microsoft Word中向对象添加替代文本
Alternative text (alt text) allows screen readers to capture the description of an object and read i ...
- android 获取布局textview,android – 获取TextView中文本的位置
看看几个Paint方法: getTextBounds()和 measureText.我们可以使用它们来确定TextView中文本的偏移量.确定TextView中的偏移后,我们可以将其添加到TextVi ...
- android textview坐标,android – 获取TextView中文本的位置
看看几个Paint方法: getTextBounds()和 measureText.我们可以使用它们来确定TextView中文本的偏移量.确定TextView中的偏移后,我们可以将其添加到TextVi ...
- Android中设置字体居中,【Android】TextView中不同大小字体如何上下垂直居中?
前言 在客户端开发中,我们往往需要对一个TextView的文字的部分内容进行特殊化处理,比如加粗.改变颜色.加链接.下划线等.iOS为我们提供了AttributedString,而Android则提供 ...
- Android 给TextView中的字体加上“中间线”
大家都知道在做购物App或者购物网站的时候,商品价格往往会有一个"现价"和"原价"而原价往往会在中间加上一个黑色的横线.便于醒目客户,但是这种效果在App中应该 ...
最新文章
- 编辑流程图_作为一名采购商,做不好采购?送你5套采购流程图模板
- 使用VS Code新建编译Flutter项目
- 使用NDK过程中出现“Unresolved inclusion jni.h”
- web服务器测试web bench
- U-BOOT的目录结构
- python column stack_Python基础 | pandas中dataframe的整合与形变(merge reshape)
- 最小覆盖圆的增量算法
- Linux内存管理中的slab分配器
- 秒懂云通信:如何用阿里云语音通知服务(小白指南)
- 记一道面试题:STL两个栈实现一个队列。
- 【Python】输入两个字符串,在第一字符串中删除第二个字符串中所包含的所有字符...
- 什么是条件组合覆盖_什么是综合评价?高中生报名有哪些好处?
- 组织架构递归_映射架构和递归管理数据–第2部分
- 20. nginx 服务器的邮件服务
- 某人分析的70后,80后,90后
- jdk1.8_API中文帮助文档
- web常见的五种前端布局方式
- Java程序员月薪20k的涨薪秘籍,系列教学
- 拼写纠错原理以及模型(Spelling Correction model)
- Adobe Flash Debugger 下载