Problem
I want to make the progress bar visibility to gone as soon as the data gets loaded. I the following adapter class I tried by overriding OnDataChanged() method. But it didn't worked. The progress bar is still visible.
Adapter Code
package com.example.movies4u;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
public class Ratings_Adapter extends FirebaseRecyclerAdapter<Ratings_model,Ratings_Adapter.myViewHolder> {
ProgressBar progressBar;
/**
* Initialize a {@link RecyclerView.Adapter} that listens to a Firebase query. See
* {@link FirebaseRecyclerOptions} for configuration options.
*
* @param options
*/
public Ratings_Adapter(@NonNull FirebaseRecyclerOptions<Ratings_model> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull myViewHolder holder, int position, @NonNull Ratings_model model) {
holder.title.setText(model.getTitle());
holder.description.setText(model.getDescription());
Glide.with(holder.img.getContext())
.load(model.getImgurl())
.placeholder(R.drawable.movie_icon)
.error(R.drawable.cannot_load_item)
.into(holder.img);
}
@NonNull
@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.ratings_item,parent,false);
return new myViewHolder(view);
}
class myViewHolder extends RecyclerView.ViewHolder{
ImageView img;
TextView title,description;
ProgressBar progressBar;
public myViewHolder(@NonNull View itemView) {
super(itemView);
progressBar=(ProgressBar) itemView.findViewById(R.id.ratingsprogressBar);
img=(ImageView) itemView.findViewById(R.id.img1);
title=(TextView) itemView.findViewById(R.id.titletext);
description=(TextView) itemView.findViewById(R.id.descriptiontext);
}
}
@Override
public void onDataChanged(){
if(progressBar!=null){
progressBar.setVisibility(View.GONE);
}
}
}
I am Expecting to make the visibility of progress bar to be gone after the data gets loaded