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

Я использую FirebaseRecyclerAdapter заселить RecyclerView в Fragment,

Вот мой код

mDatabase = FirebaseDatabase.getInstance().getReference();
myAdapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(Product.class,
        R.layout.product_item,ProductViewHolder.class,
        mDatabase.child("clothes")) {
    @Override
    protected void populateViewHolder(ProductViewHolder viewHolder, Product model, int position) {
        mProgressBar.setVisibility(ProgressBar.INVISIBLE);
        viewHolder.name.setText(model.name);
        viewHolder.price.setText(model.price);
        Glide.with(getActivity()).load(model.imageUri).into(viewHolder.thumbnail);
        Log.d("NAME", model.name);
    }
};
recyclerView.setAdapter(myAdapter);

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

2 ответа

Решение

Удалить recyclerView.setHasFixedSize(true) из вашего кода, а затем проверьте, работает ли код сейчас нормально.

И за увольнение ProgressBar, хорошо, чтобы установить видимость GONE,

mProgressBar.setVisibility(View.GONE);

Для получения дополнительной информации вы можете увидеть эту ссылку Github. Я думаю, что та же самая проблема сообщена здесь.

В вашем файле Activity.xml установите свойство ProgressBar

android:visibility="invisible"

и в вашем методе populateViewHolder установите mProgress.setVisibility(View.GONE);после установки данных в TextViews & ImageView

 protected void populateViewHolder(ProductViewHolder viewHolder, Product model, int position) {
        viewHolder.name.setText(model.name);
        viewHolder.price.setText(model.price);
        Glide.with(getActivity()).load(model.imageUri).into(viewHolder.thumbnail);
        mProgress.setVisibility(View.GONE);
        Log.d("NAME", model.name);
    }
Другие вопросы по тегам