4

我目前有一个 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 开发人员相当陌生,所以我不确定这是否可以完成,或者是否有其他方法可以解决这个问题。

4

1 回答 1

8

对于少量的 HTML 文本,您可以使用 TextView 的 TextFormatted 属性 - 通常使用将执行 HTML 解析的 ValueConverter(使用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。这类似于MVVMCross 中动态绑定 UIWebView 中用于 UIWebView 的继承技术

于 2013-10-09T18:52:21.153 回答