Использование привязки данных для выделения выбранной строки в окне просмотра - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь выделить строку моего рециркуляции, когда пользователь нажимает на нее.

Расположение строк в Recyclerview:

<data>
    <variable name="model" type="ItemRow" />
    <variable name="listener" type="ItemClickListener" />
</data>

<com.google.android.material.card.MaterialCardView       
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView            
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@{model.name}"
        android:onClick="@{() -> listener.onItemClicked(model)}"           
        android:background="@{model.isSelected ? @drawable/white : @drawable/blue}"/>

</com.google.android.material.card.MaterialCardView>

OnClickListener создается в действии:

ItemClickListener listener = item -> viewModel.selectItem(item);

Viewmodel устанавливает для свойства isSelected элемента true:

public void selectItem(Item item)
{
    item.setSelected(true);        
}

Однако это не меняет фон строки. Отладка с помощью кода показывает, что для свойства элемента isSelected установлено значение true. Я что-то упускаю?

...