我有一个List
使用数据绑定库绑定到布局的模型。如何View
根据列表的isEmpty()
条件更改 a 的可见性?就像是android:visibility="@{model.list.isEmpty() ? View.INVISIBLE : View.VISIBLE}"
问问题
2110 次
2 回答
2
让我们将一个新文件称为“BindingAdapters”,因为您可能会在其他地方使用它。
object BindingAdapters {
@JvmStatic
@BindingAdapter("visibleGone")
fun showHide(view: View, show: Boolean) {
view.visibility = if (show) View.VISIBLE else View.GONE
}
}
在 XML 上,您只需执行以下操作:
app:visibleGone="@{viewModel.list.isNotEmpty()}"
于 2018-09-12T19:12:20.333 回答
2
好的,虽然从文档中不清楚,但可以使用自定义设置器完成,如下所示:
在我的模型中,我必须声明
@BindingAdapter("android:visibility")
public static void setVisibility(View view, Model model) {
view.setVisibility(model.getList().isEmpty() ? View.INVISIBLE: View.VISIBLE);
}
然后,在布局中
android:visibility="@{model}"
model
模型变量的名称在哪里<variable name=""/>
于 2015-11-11T23:03:45.143 回答