防微博内容展示,使用Html.fromHtml(),解决内容不能换行的问题_html/css_WEB-ITnose
使用Html.fromHtml(),解决内容不能换行的问题,模仿微博内容展示效果。
一、需求要实现的效果
如下图中箭头指向的微博内容部分,包含超链接,点击超链接后要跳转到相应的WebView页面。(csdn上传图片试了好多遍也不成功,大家脑补一下吧,辛苦了)。
二、 实现思路
首先获取网络数据,通过Html.fromHtml()解析获取到的数据,这时超链接、段落符
、换行符
等将会被展示成对应的表现形式,就会出现上图所示的效果。然后我们解决第二个问题,点击跳转的问题,直接上代码。
/** * 设置TextView中URL由内嵌浏览器打开 * @param context * @param textView*/public static void setOpenUrlByBrowser(Context context, TextView textView) {textView.setMovementMethod(LinkMovementMethod.getInstance());CharSequence text = textView.getText();if (text instanceof Spannable) {int end = text.length();Spannable sp = (Spannable) textView.getText();URLSpan[] urls = sp.getSpans(0, end, URLSpan.class);SpannableStringBuilder style = new SpannableStringBuilder(text);style.clearSpans();for (URLSpan url : urls) {MyURLSpan myURLSpan = new MyURLSpan(context, url.getURL());style.setSpan(myURLSpan, sp.getSpanStart(url), sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);}textView.setText(style);}}
其中主要用到的类有 Spannable、SpannableStringBuilder,如果有不了解两类的同学,可以Google这连个类,后面有时间也会分析这两个类的实现。至于MyURLSpan是自定义的一个超链接点击之后的操作类,在这里实现界面的跳转。So,我们实现了展示和跳转。
三、 遇到的问题
如上编码之后,我遇到了文本不能换行的问题,如在我的应用中我发的一遍帖子带有换行的帖子,但是在帖子详情页面没有换行显示。
四、 分析原因
查看服务端返回的数据,发现时这样的。 “ 这是一个测试用的帖子\n我想测试他能不能换行\n”,于是找到了原因,html不能解析“\n”。
五、 解决办法
最吊炸天的地方来了,将所有的“\n”转换成“
”,代码如下,这样就可以解决问题。
private String parseContent(String content) {if(StringUtil.isNotEmpty(content)){content = content.replace("\n","<br>");}return content;}
来自地球的小伙伴们,如上只是这个小问题的解决思路,聪明的你一定会举一反三,在parseContent中去充分发挥,解决其他的问题,今天是七夕,祝情人节快乐奥,O(∩_∩)O哈哈~

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文讨论了HTML&lt; Progress&gt;元素,其目的,样式和与&lt; meter&gt;元素。主要重点是使用&lt; progress&gt;为了完成任务和LT;仪表&gt;对于stati

本文讨论了html&lt; datalist&gt;元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

本文讨论了HTML&lt; meter&gt;元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了&lt; meter&gt;从&lt; progress&gt;和前

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

本文讨论了视口元标签,这对于移动设备上的响应式Web设计至关重要。它解释了如何正确使用确保最佳的内容缩放和用户交互,而滥用可能会导致设计和可访问性问题。

本文解释了HTML5&lt; time&gt;语义日期/时间表示的元素。 它强调了DateTime属性对机器可读性(ISO 8601格式)的重要性,并在人类可读文本旁边,增强Accessibilit

本文讨论了&lt; iframe&gt;将外部内容嵌入网页,其常见用途,安全风险以及诸如对象标签和API等替代方案的目的。
