赞
踩
在网上找了很久的代码终于找到了,经过测试,可以使用,先记录下来,以便以后使用。先上实验的效果图
图上有两个textview,不同之处请看下文。
以下是转载的原文:
一、问题在哪里?
textview显示长文字时会进行自动折行,如果遇到一些特殊情况,自动折行会杯具成这个样子:
上述特殊情况包括:
1)全角/半角符号混排(一般是数字、字母、汉字混排)
2)全角/半角标点符号出现在行首时,该标点符号会连同其前一个字符跳到下一行
3)英文单词不能被折成两行
4)......
二、怎么搞?
通常有两类解决方案:
1)修改文本内容,将所有符号全角化、在标点符号前面加空格等等……
2)保持文本内容不变,在合适的位置将文本手动分成多行
本文采用第二种方案,更加通用,也最大限度的保留了原文本。
三、开始干活
3.1 “在合适的位置将文本手动分成多行”需要知道textview的实际宽度、字体大小等信息,框架如下:
四、更多玩法
4.1 可以封装一个自定义的textview,直接包含自动排版换行的功能:
调用方式:
autoSplitText(tv, "1、");
悬挂缩进效果:
注意:得在layout的xml里面用AutoSplitTextView,不要用原生的TextView了,否则就会是文章开始时那张效果图显示的那样。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。