2016-10-23 9 views
2

htmlテキストを表示するために、私はカスタムTextViewを持っています。 pre-Nougatデバイスの場合は動作します。すでにヌガーに知っているように、fromHtmlは廃止され、それは私のコードは、このNougatのHtml.fromHtmlは、カスタムHtmlHandlerを呼び出さない

Spannable s = getRichText(text); 
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { 
    super.setText(Html.fromHtml(s.toString(), Html.FROM_HTML_MODE_COMPACT, this, new HtmlHandler(getContext())), BufferType.SPANNABLE); 
} else { 
    super.setText(Html.fromHtml(s.toString(), this, new HtmlHandler(getContext())), BufferType.SPANNABLE); 
} 

HtmlHandlerクラスが呼び出されない飽きないさ、という問題それのようであるflag..soを必要とします。 (私はすでにすべての旗を試しました)。 HtmlHandlerでタグとスタイルを処理します。たとえばbackground-color,colorなどです。私はrgbrgbahlsなどから色を取得するように実装していますが、Nougatでは色を読み取って表示することができます。なぜこうなった?どのように私は色のために自分の道を維持することができますか?あなたが何かを理解していない、または詳細が必要な場合は、私に教えてください。

私がテストに使用するHTMLは

<p><strong>Server</strong><u> message</u><strong><u>!!!</strong></u> <span style="background-color: rgb(255,0,0);">Not working on Nugat</span></p> 
+0

あなたの質問を編集して、HTMLのサンプルと、あなたの 'TagHandler'にルーティングされていないものの表示を提供することができますか?例えば、 'Html'は' 'をかなり前からサポートしています。 7.1(おそらく7.0)は ''タグを扱いますが、以前はそうではありませんでしたが、あなたの問題がどこにあるのでしょうか? – CommonsWare

+0

質問を編集します。問題は「スパン」ではない。なぜなら、 'div'でも' p'でも動作しないからです。問題は、私の 'HtmlHandler'クラスが決して呼び出されないことです。それは奇妙な部分です –

+0

私のTagHandlerでは 'background'、' color'、 'color'のCSSスタイルの' ol'、 'ul'、' strike'、 'code'、' span'、 fontawesome、そしてそれらのうちの何人かがNougatに取り組んでいます –

答えて

5

Html.fromHtml()のみfromHtml()が認識されないあなたのTagHandler用のHTMLタグを呼び出しますです。あなたのサンプルHTMLでは、あなたが持っている:

  • <p>
  • <strong>
  • <u>
  • <span>

とあなたの最初のコメントでは、あなたもdivに言及します。早くない場合は、それらの

fromHtml()は、at least 2010以来<p><strong>、および<u>を取り扱っています。 Android 6.0のfromHtml()<div>(の488〜489行目を参照)を処理しています。 TagHandlerはこれらのタグのいずれにも呼び出されず、その動作は特に新しいものではありません。

アンドロイド7.0(the 7.1 sourceから行804から805を参照)<span>のサポートを追加し、そしてそうTagHandler<span>ために呼び出されることが期待コードは7.0 Androidの以前のバージョンとの間で異なる動作になります。

一般に、サポートされているタグのリストは文書化されていません。サポートされているタグのリストはいつでも変更できます。

あなたのオプションは以下のとおりです。

  • 、あなたが好きないくつかのHtml.javaにソースそれ

  • グラブと同居、独自のパッケージにそれをリファクタリングし、コピーの使用、あなたが見るようにそれを修正します

  • は、あなたがより良い

が好きな他のいくつかのHTMLツー Spannableソースコードを探すフィット
+0

さて、私はそれを得ました。私は何ができるかを見ていきます。どうもありがとうございました! –

関連する問題