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
등). rgb
, rgba
, hls
등의 색상을 구현했습니다.하지만 Nougat에서는 Nougat에서 색상을 읽고 표시 할 수 있기 때문에 Nougat에서는 16 진수 만 사용할 수 있습니다. 왜 이런 일이 일어나는 걸까요? 색상을 유지하려면 어떻게해야합니까? 너가 무언가를 이해하지 않거나, 세부 사항을 더 필요로하면, 나에게 알린다.
내가 테스트를 위해 사용하는 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>
질문을 편집하고 HTML 샘플을 제공하고, 'TagHandler'로 라우팅되지 않는 것의 표시를 제공 할 수 있습니까? (이전 7.0에 사용되던 곳)? 예를 들어'Html'은 꽤 오래''을 지원합니다. 7.1 (그리고 아마도 7.0)이 이제는 ''태그를 처리하는 반면 이전에는 그렇지 않았던 것으로 나타났습니다 - 문제가있는 곳이 어디입니까? – CommonsWare
질문을 편집합니다. 문제는 '스팬'이 아닙니다. 왜냐하면 그것은'div' 나'p'와 함께 작동하지 않기 때문입니다. 문제는 내'HtmlHandler' 클래스가 결코 호출되지 않는다는 것입니다. 그것은 이상한 부분입니다 –
내 TagHandler에서'ol','ul','strike','code','span','div'와'background-color','color'와 fontawesome, 그들 중 누구도 누가 (Nougat)에서 일하고있다. –