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