Использование AS 3.2.1
с targetSdkVersion 28
.У меня есть RecyclerView
с элементами, содержащими кнопку и индикатор выполнения.Видимость индикатора выполнения связана с ObservableBoolean с его начальным значением, установленным на false .
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true">
<androidx.appcompat.widget.AppCompatImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:onClick="@{() -> data.onLoad()}" />
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="@{data.isLoading ? View.VISIBLE : View.INVISIBLE}" />
</RelativeLayout>
В обработчике onClick
кнопки я пытаюсьсделайте индикатор выполнения видимым, установив для этого значения значение true :
public void onLoad() {
isLoading.set(true);
}
Ничего не происходит.Индикатор выполнения остается невидимым!Однако, если я установлю исходное значение на true , индикатор выполнения станет видимым!
Q: Как я могу использовать привязку данных к изначальноскрыть вид, а потом показать?(Обратите внимание, что все мои привязки работают, за исключением переключения видимости.)
UPDATE
Оказывается, что следующий метод нарушает двустороннюю привязку из-за какого-то странного правила приоритета (ошибка) в структуре привязки данных:
public boolean getIsLoading() { return isLoading.get(); }