RichText
RichText copied to clipboard
底部会多出一段间距
详细教程几个字以上是富文本,使用的富文本是demo里面的html那段,两者之间会多出一段间距。感觉体验不好
同样碰到类似问题了,想问下解决了吗?
只能等待大神解答了。。
同样碰到类似问题了,有解决方案吗?
暂时不知道怎么解决。
这个应该是 内容页的标签换行问题,过滤一下会解决部分问题
SpannableStringBuilder末尾有"\n\n",自己手工移除下吧
SpannableStringBuilder末尾有"\n\n",自己手工移除下吧
麻烦问一下,这个末尾换行符,要怎么过滤呢。我通过RichText解析了html,还要怎么去过滤呢?提前谢谢了
解决了,谢谢@tinyvampirepudge的解决办法。在HtmlToSpannedConverter类中的convert方法中过滤下\n。我用的是作者的html解析库。
Spanned convert() {
mReader.setContentHandler(this);
try {
mReader.parse(new InputSource(new StringReader(mSource)));
} catch (IOException e) {
// We are reading from a string. There should not be IO problems.
throw new RuntimeException(e);
} catch (SAXException e) {
// TagSoup doesn't throw parse exceptions.
throw new RuntimeException(e);
}
// Fix flags and range for paragraph-type markup.
Object[] obj = mSpannableStringBuilder.getSpans(0, mSpannableStringBuilder.length(), ParagraphStyle.class);
for (Object anObj : obj) {
int start = mSpannableStringBuilder.getSpanStart(anObj);
int end = mSpannableStringBuilder.getSpanEnd(anObj);
// If the last line of the range is blank, back off by one.
if (end - 2 >= 0) {
if (mSpannableStringBuilder.charAt(end - 1) == '\n' &&
mSpannableStringBuilder.charAt(end - 2) == '\n') {
end--;
}
}
if (end == start) {
mSpannableStringBuilder.removeSpan(anObj);
} else {
mSpannableStringBuilder.setSpan(anObj, start, end, Spannable.SPAN_PARAGRAPH);
}
}
// 如果内容最后以\n\n结尾,那么去除一个,避免底部出现大部分空白
if (mSpannableStringBuilder.length() > 2) {
if (mSpannableStringBuilder.charAt(mSpannableStringBuilder.length()-1) == '\n' &&
mSpannableStringBuilder.charAt(mSpannableStringBuilder.length() - 2) == '\n') {
mSpannableStringBuilder.delete(mSpannableStringBuilder.length() - 1, mSpannableStringBuilder.length());
}
}
return mSpannableStringBuilder;
}
谢谢@tinyvampirepudge的解决办法。在HtmlToSpannedConverter类中的convert方法中过滤下\n。我用的是作者的htm
你这个过滤的方法,是改他的源码吗?还是另外的过滤方法
我是用的https://github.com/zzhoujay/Html 作者写的html解析库,android官方的html解析库,也有内容末尾出现大段空白的问题。其他的过滤方法暂时还没想到。
我是用的https://github.com/zzhoujay/Html 作者写的html解析库,android官方的html解析库,也有内容末尾出现大段空白的问题。其他的过滤方法暂时还没想到。
我也有用他的解析库,还是会留白啊。你上面处理的那段,是放在哪里处理的?
去html解析库中找到HtmlToSpannedConverter类,在这个类中找到convert方法,在这个方法的最后把这段代码加上
// 如果内容最后以\n\n结尾,那么去除一个,避免底部出现大部分空白
if (mSpannableStringBuilder.length() > 2) {
if (mSpannableStringBuilder.charAt(mSpannableStringBuilder.length()-1) == '\n' &&
mSpannableStringBuilder.charAt(mSpannableStringBuilder.length() - 2) == '\n') {
mSpannableStringBuilder.delete(mSpannableStringBuilder.length() - 1, mSpannableStringBuilder.length());
}
}