Как решить виджеты, исчезающие на RecyclerView в макетах XML? - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть RecyclerView , состоящий из элементов, которые имеют radioButton ... Я хочу обновить моих данных элементов RecyclerView через 2 секунды с отображением загрузочного виджета и сделать RecylerView дляпрокрутите до первого элемента, пока пользователь нажимает на RadioButtons.

Все сделано правильно, кроме загрузки и виджета RecylerView Visiblity ...

Загрузка виджета и RecyclerView Visiblity не выполняетсяизменить.

Это мой xml

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recy_billing"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginBottom="8dp"
            app:layout_constraintBottom_toTopOf="@+id/materialCardView7"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            />

        <com.airbnb.lottie.LottieAnimationView
            android:id="@+id/loading_order"
            android:layout_width="@dimen/loading"
            android:layout_height="@dimen/loading"
            android:layout_gravity="center"
            android:visibility="invisible"
            app:layout_constraintBottom_toTopOf="@id/materialCardView7"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:lottie_autoPlay="true"
            app:lottie_fileName="loading.json"
            app:lottie_loop="true" />

и это мой код ..

public void updateAddressSelectionRecy() {

    try {

        mRecyBilling.setVisibility(View.GONE);
        mSelectAddressLoading.setVisibility(View.VISIBLE);
        mRecyBilling.getAdapter().notifyDataSetChanged();
        mRecyBilling.scrollToPosition(0);

        Thread.sleep(SLEEP_TIME);
        mRecyBilling.setVisibility(View.VISIBLE);
        mSelectAddressLoading.setVisibility(View.GONE);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

}

1 Ответ

0 голосов
/ 19 апреля 2019

Позвоните mRecyBilling.getAdapter().notifyDataSetChanged(); еще раз до catch() блока.

т.е:.

public void updateAddressSelectionRecy() {

    try {

        mRecyBilling.setVisibility(View.GONE);
        mSelectAddressLoading.setVisibility(View.VISIBLE);
        mRecyBilling.getAdapter().notifyDataSetChanged();
        mRecyBilling.scrollToPosition(0);

        Thread.sleep(SLEEP_TIME);
        mRecyBilling.setVisibility(View.VISIBLE);
        mSelectAddressLoading.setVisibility(View.GONE);
        mRecyBilling.getAdapter().notifyDataSetChanged();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...