2015-11-11 3 views
1

У меня есть List в модели, которая привязана к макету с использованием привязки данных. Как я могу изменить видимость View, основываясь на состоянии списка isEmpty()? Что-то вроде android:visibility="@{model.list.isEmpty() ? View.INVISIBLE : View.VISIBLE}"Как изменить видимость вида в зависимости от того, пуст ли список или нет

+0

Адаптер ваших ListViews должен быть уведомлен об изменении данных с помощью 'listAdapter.notifyDataSetChanged()'. Вы даже можете попробовать 'listView.invalidate()' – Nirel

+0

@Nirel мой вопрос был о [библиотеке привязки данных] (http://developer.android.com/tools/data-binding/) – Ari

ответ

1

Хорошо, хотя это не было ясно из docs, это может быть сделано с помощью 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=""/>

Смежные вопросы