Android FlowTextView中的HTML视图

时间:2015-11-03 10:07:32

标签: android

我使用了来自https://github.com/的FlowTextView库。 但我的问题是当我从HTML显示内容时,它无法正常显示。

<html>
<body>

<h2>Unordered List with Default Bullets</h2>

<ul>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ul>  

</body>
</html>

以上标签是我的输入,我必须在下面输出

包含默认项目符号的无序列表

  • 咖啡

但我得到了。

包含默认项目符号的无序列表 CoffeeTeaMilk

这是我的安卓代码

跨越html = Html.fromHtml(内容);         flowTextView.setText(HTML);

请帮助我摆脱这个阶段。

2 个答案:

答案 0 :(得分:1)

您可以使用 TagHandler

执行此操作
myTextView.setText(Html.fromHtml("<html><body><ul><li>....</li></ul></body></html>", null, new MyTagHandler()));

MyTagHandler 类下方使用以供参考.....您可以根据需要自定义它。

public class MyTagHandler implements TagHandler{

boolean first= true;
String parent=null;
int index=1;

@Override
public void handleTag(boolean opening, String tag, Editable output,
        XMLReader xmlReader) {

    if(tag.equals("ul")) parent="ul";
    else if(tag.equals("ol")) parent="ol";
    if(tag.equals("li")){
        if(parent.equals("ul")){
            if(first){
                output.append("\n\t•");
                first= false;
            }else{
                first = true;
            }
        }
        else{
            if(first){
                output.append("\n\t"+index+". ");
                first= false;
                index++;
            }else{
                first = true;
            }
        }   
    }
}
}

答案 1 :(得分:0)

FlowTextView库有缺点。没有必要做Html.fromHtml - 库为你做这个。视图本身是RelativeLayout,它们使用onDraw方法将文本放在那里。这就是为什么文本看起来不好,链接不可点击和其他问题。

我建议使用标准TextView并使用Spans创建您想要的所有内容。您的链接是可点击的,有子弹的特殊跨度,文本样式等。这是用于文本样式的本机android机制。这可能很有用http://flavienlaurent.com/blog/2014/01/31/spans/