Причина, по которой обновление происходит только при первой загрузке экрана, заключается в том, что XML используется для раздувания просмотра, а затем используется исходный элемент и устанавливается в CustomView.
Затем, когда элемент в списке обновляется, он не запускает обновление в CustomView.
Возможно, вы ищете @BindingAdapter
@BindingAdapter("enableButton")
internal fun Button.enableButton(enabled: Boolean?) = enabled?.let { isEnabled = it } ?: also { isEnabled = false }
И затем использовать его следующим образом:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button Text"
app:enableButton="@{viewModel.observeStatus()}" /> // <- Observes Boolean
Хорошее прохождение может быть по следующей ссылке: BindingAdapter
Примечание. Этот пример предназначен только для логического наблюдения, но его можно просто изменить, чтобы он соответствовал объекту наблюдения.