如何根据列表是否为空更改视图的可见性
How can I change a View's visibility based on whether a list is empty or not
我在使用数据绑定库绑定到布局的模型中有一个 List
。如何根据列表的 isEmpty()
条件更改 View
的可见性?像 android:visibility="@{model.list.isEmpty() ? View.INVISIBLE : View.VISIBLE}"
好的,虽然从docs, it can be done using custom setters中看不清楚如下:
在我的模型中,我必须声明
@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=""/>
中模型变量的名称
让我们调用一个新文件 "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()}"
我在使用数据绑定库绑定到布局的模型中有一个 List
。如何根据列表的 isEmpty()
条件更改 View
的可见性?像 android:visibility="@{model.list.isEmpty() ? View.INVISIBLE : View.VISIBLE}"
好的,虽然从docs, it can be done using custom setters中看不清楚如下:
在我的模型中,我必须声明
@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=""/>
让我们调用一个新文件 "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()}"