Android 足够安全/html文本视图库HtmlTextView拦截父单击事件

Android 足够安全/html文本视图库HtmlTextView拦截父单击事件,android,android-layout,Android,Android Layout,使用库来显示html文本时,我偶然发现了一个问题,即在被HtmlTextView占据的地方,任何以HtmlTextView作为子视图的布局都变得不可点击 问题:如何使HtmlTextView停止以拦截单击事件?结果显示,setHtml。。方法调用setMovementMethodLocalLinkMovementMethod.getInstance;在…内 它将所有HTMLTextView转换为可点击链接。这就是为什么在单击HtmlTextView时未触发父级的OnClickListener 源

使用库来显示html文本时,我偶然发现了一个问题,即在被HtmlTextView占据的地方,任何以HtmlTextView作为子视图的布局都变得不可点击

问题:如何使HtmlTextView停止以拦截单击事件?

结果显示,setHtml。。方法调用setMovementMethodLocalLinkMovementMethod.getInstance;在…内 它将所有HTMLTextView转换为可点击链接。这就是为什么在单击HtmlTextView时未触发父级的OnClickListener

源代码:

  public void setHtml(@NonNull String html, @NonNull Html.ImageGetter imageGetter) {
    final HtmlTagHandler htmlTagHandler = new HtmlTagHandler(getPaint());
    htmlTagHandler.setClickableTableSpan(clickableTableSpan);
    htmlTagHandler.setDrawTableLinkSpan(drawTableLinkSpan);
    htmlTagHandler.setListIndentPx(indent);

    html = htmlTagHandler.overrideTags(html);

    if (removeTrailingWhiteSpace) {
        setText(removeHtmlBottomPadding(Html.fromHtml(html, imageGetter, htmlTagHandler)));
    } else {
        setText(Html.fromHtml(html, imageGetter, htmlTagHandler));
    }

    // make links work
    setMovementMethod(LocalLinkMovementMethod.getInstance());
}
解决方案:htmlTextView.setMovementMethodnull;在setHtml之后

或使用以下方法创建Utils类:

 public static void setHtml(HtmlTextView htmlTextView, @Nullable String text) {
    htmlTextView.setHtml(text);
    htmlTextView.setMovementMethod(null);
}