显示带有HTML标记的文本
我需要在页面上显示显示带有HTML标记的文本,html,xamarin,webview,xamarin.android,label,Html,Xamarin,Webview,Xamarin.android,Label,我需要在页面上显示HTML文本。尝试使用WebView,但它不能适应HTML内容高度,它只有HeightRequest。我为Label创建了渲染器,以便在其中启用HTML标记 public class HtmlLabelRenderer : LabelRenderer { protected override void OnElementChanged(ElementChangedEventArgs<Label> e) { base.OnElemen
HTML
文本。尝试使用WebView,但它不能适应HTML
内容高度,它只有HeightRequest
。我为Label
创建了渲染器,以便在其中启用HTML
标记
public class HtmlLabelRenderer : LabelRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
base.OnElementChanged(e);
Control?.SetText(Html.FromHtml(Element.Text), TextView.BufferType.Spannable);
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == Label.TextProperty.PropertyName)
{
Control?.SetText(Html.FromHtml(Element.Text), TextView.BufferType.Spannable);
}
}
}
公共类HtmlLabelRenderer:LabelRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
控件?.SetText(Html.FromHtml(Element.Text),TextView.BufferType.Spannable);
}
受保护的覆盖无效OnElementPropertyChanged(对象发送方,PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(发送方,e);
if(e.PropertyName==Label.TextProperty.PropertyName)
{
控件?.SetText(Html.FromHtml(Element.Text),TextView.BufferType.Spannable);
}
}
}
它可以工作,但是当我的HTML
文本具有带有text align:right
的标记时,htmlabel
不会显示它。使用WebView时,带有text align:right
的标记将正确显示
如何更新
htmlabel
以正确显示带有text align:right
的标记?TextView不支持所有HTML标记
根据需要,支持以下标签:
<a href="...">
<b>
<big>
<blockquote>
<br>
<cite>
<dfn>
<div align="...">
<em>
<font size="..." color="..." face="...">
<h1>
<h2>
<h3>
<h4>
<h5>
<h6>
<i>
<img src="...">
<p>
<small>
<strike>
<strong>
<sub>
<sup>
<tt>
<u>
,文本对齐
应该是结束
,而不是右
。适用于p、h1、h2、h3、h4、h5、h6、div、blockquote