我目前有一个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开发人员的新手,所以我不确定是否可以做到这一点,或者我是否还有其他方法可以接近它。
答案 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的继承技术