如何将HTML字符串绑定到Android应用中的webview?

时间:2013-10-09 18:40:46

标签: android-webview xamarin.android mvvmcross

我目前有一个android:TextView绑定到一个字符串,该字符串可能包含也可能不包含HTML。

<TextView
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:autoLink="all"
        android:padding="10dp"
        style="@style/ListItemText"
        local:MvxBind="Text Answer" />

不知何故,我需要能够使用html渲染显示此文本。所以我想我会将TextView切换到WebView并将相同的字符串绑定到WebView。我是Android开发人员的新手,所以我不确定是否可以做到这一点,或者我是否还有其他方法可以接近它。

1 个答案:

答案 0 :(得分:8)

对于少量HTML文本,您可以使用TextView的TextFormatted属性 - 通常使用ValueConverter来执行HTML解析(使用Html.FromHtml(input)

public class FromHtmlValueConverter : MvxValueConverter<string>
{
   protected override object Convert(string value, Type targetType, object parameter, CultureInfo culture)
   {
       return Html.FromHtml(value);
   }
}

<TextView
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:autoLink="all"
    android:padding="10dp"
    style="@style/ListItemText"
    local:MvxBind="TextFormatted FromHtml(Answer)" />

为了呈现完整的WebView,您需要添加自定义绑定 - 或继承并提供自定义属性 - 以便在VM更改时调用LoadData。这类似于Dynamic Binding UIWebView in MVVMCross

中用于UIWebView的继承技术