Как использовать загрузку ProgressBar с RecyclerView - PullRequest
0 голосов
/ 05 мая 2020

Я разрабатываю приложение Android, которое загружает данные из базы данных Firebase в RecyclerView. И я заметил, что при низкой скорости сети в представлении ресайклера ничего не отображается и требуется время, чтобы отобразить данные. Поэтому я хочу использовать индикатор выполнения загрузки с RecyclerView, пока RecyclerView не будет готов отображать данные, но я не знаю, как это сделать, и мне нужна помощь.

1 Ответ

0 голосов
/ 05 мая 2020

Вы не предоставили никакого кода, поэтому я отвечаю на ваш вопрос, исходя из своего подхода:

XML (у нас есть ConstraintLayout с RecyclerView и Progressbar)

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="0dp"
        android:layout_height="0dp" />

    <ProgressBar
        android:id="@+id/progressbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

В ваш java код (MainActivity):

recyclerView.setHasFixedSize(true)
recyclerView.layoutManager = LinearLayoutManager(this)
recyclerView.viewTreeObserver
        .addOnGlobalLayoutListener(object : OnGlobalLayoutListener {
            override fun onGlobalLayout() {
                progressbar.visibility = View.GONE
                recyclerView.viewTreeObserver.removeOnGlobalLayoutListener(this)
            }
        })
recyclerView.adapter = RecyclerViewAdapter(yourItems)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...