是否可以在数据绑定中使用扩展函数?
Is it possibile to use extension functions in databinding?
我想将一些数据html化并通过数据绑定在文本视图中设置?可能吗?
ie.If我有这样的扩展功能
fun TextView.htmlText(txt: String?) {
txt.let {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Html.fromHtml(txt, Html.FROM_HTML_MODE_COMPACT)
} else {
Html.fromHtml(txt)
}
}
}
我怎样才能把这个扩展函数放在数据绑定中而不是这个
android:text="@{model.text}"
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="android.text.Html" />
<import type="android.os.Build" />
<variable
name="model"
type="com.login.LoginViewModel" />
</data>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text='@{Build.VERSION.SDK_INT> Build.VERSION_CODES.N?Html.fromHtml(model.text, Html.FROM_HTML_MODE_COMPACT):Html.fromHtml(model.text)}' />
</layout>
我是使用绑定适配器完成的
@BindingAdapter("app:text")
@JvmStatic
fun htmlText(view: TextView, text: String?) {
text?.let {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
view.text = Html.fromHtml(it.trim(), Html.FROM_HTML_MODE_COMPACT)
} else {
view.text = Html.fromHtml(it.trim())
}
}
}
像这样。
我想将一些数据html化并通过数据绑定在文本视图中设置?可能吗?
ie.If我有这样的扩展功能
fun TextView.htmlText(txt: String?) {
txt.let {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Html.fromHtml(txt, Html.FROM_HTML_MODE_COMPACT)
} else {
Html.fromHtml(txt)
}
}
}
我怎样才能把这个扩展函数放在数据绑定中而不是这个
android:text="@{model.text}"
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="android.text.Html" />
<import type="android.os.Build" />
<variable
name="model"
type="com.login.LoginViewModel" />
</data>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text='@{Build.VERSION.SDK_INT> Build.VERSION_CODES.N?Html.fromHtml(model.text, Html.FROM_HTML_MODE_COMPACT):Html.fromHtml(model.text)}' />
</layout>
我是使用绑定适配器完成的
@BindingAdapter("app:text")
@JvmStatic
fun htmlText(view: TextView, text: String?) {
text?.let {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
view.text = Html.fromHtml(it.trim(), Html.FROM_HTML_MODE_COMPACT)
} else {
view.text = Html.fromHtml(it.trim())
}
}
}
像这样。