のHtml.java
から、TagHandler.handleTag()
がフレームワークがそれ自身を処理しない場合にのみ呼び出されることが明らかです。
現在、フレームワークはそれをうまく処理していないようです。
しかし、それがうまくいっても、それをどうにかカスタマイズしたいと思うでしょう。これに対処する最善の方法は、デフォルトのul
,li
タグを独自のタグに置き換えることです。フレームワークはカスタムタグを処理しないため、TagHandler
に処理するように求められます。
public static String customizeListTags(@Nullable String html) {
if (html == null) {
return null;
}
html = html.replace("<ul", "<" + UL);
html = html.replace("</ul>", "</" + UL + ">");
html = html.replace("<ol", "<" + OL);
html = html.replace("</ol>", "</" + OL + ">");
html = html.replace("<dd", "<" + DD);
html = html.replace("</dd>", "</" + DD + ">");
html = html.replace("<li", "<" + LI);
html = html.replace("</li>", "</" + LI + ">");
return html;
}
そして、あなたは私が要素とスタイリングのためのより多くのコールバックを含んでAndroidのバージョン間でのHTMLクラスを標準化し、バックポートするために、互換性ライブラリを公開した
html = customizeListTags(html);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
result = Html.fromHtml(html,Html.FROM_HTML_MODE_LEGACY, null, new CustomTagHandler());
} else {
//noinspection deprecation
result = Html.fromHtml(html, null, new CustomTagHandler());
}
[mcve]を入力してください。 – CommonsWare
@CommonsWare申し訳ありません。編集されました。 – okmanideep
_ "... API-24では呼び出されませんでした..." _ Android N端末で実行しましたか? –