RecyclerView在关闭并打开屏幕之前不会显示数据

时间:2018-12-18 15:47:12

标签: android firebase android-recyclerview

我正在开发一个可在RecyclerView中显示来自Firebase的图像和文本的应用程序。 当我打开应用程序时,recyclerview不会出现,但是如果我关闭然后再打开屏幕,则recyclerview会正确显示,并带有从firebase获得的图像和文本。我需要帮助

ViewHolder:

public class ViewHolderServicio extends RecyclerView.ViewHolder {
View mView;
public ViewHolderServicio(@NonNull View itemView) {
    super(itemView);
    mView = itemView;

}

public void setDetails(Context ctx, String nombreServicio, String imagenPerfil) {
    TextView mNombreServicio = mView.findViewById(R.id.NombreServicio);
    ImageView mImagenPerfil = mView.findViewById(R.id.imageViewServicio);

    mNombreServicio.setText(nombreServicio);
    Picasso.get().load(imagenPerfil).into(mImagenPerfil);

    }
}

型号:

public class ModelServicio {
String idUsuario, nombreServicio, descripcion, imagenPerfil;

public ModelServicio(){}

public String getIdUsuario() {
    return idUsuario;
}

public void setIdUsuario(String idUsuario) {
    this.idUsuario = idUsuario;
}

public String getNombreServicio() {
    return nombreServicio;
}

public void setNombreServicio(String nombreServicio) {
    this.nombreServicio = nombreServicio;
}

public String getDescripcion() {
    return descripcion;
}

public void setDescripcion(String descripcion) {
    this.descripcion = descripcion;
}

public String getImagenPerfil() {
    return imagenPerfil;
}

public void setImagenPerfil(String imagenPerfil) {
    this.imagenPerfil = imagenPerfil;
}
}

课堂活动:

public class DetalleServicio extends AppCompatActivity {
RecyclerView RVbot;
FirebaseDatabase mFirebaseDatabase;
DatabaseReference mRef;
FirebaseRecyclerAdapter<ModelServicio, ViewHolderServicio> firebaseRecyclerAdapter;
FirebaseRecyclerOptions<ModelServicio> options;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_detalle_servicio);

    RVbot = findViewById(R.id.RVBot);
    RVbot.setHasFixedSize(true);
    RVbot.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
    mFirebaseDatabase = FirebaseDatabase.getInstance();
    mRef = mFirebaseDatabase.getReference("Servicios");
    mostrarDatos();
}

private void mostrarDatos() {
    options = new FirebaseRecyclerOptions.Builder<ModelServicio>().setQuery(mRef, ModelServicio.class).build();
    firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<ModelServicio, ViewHolderServicio>(options) {
        @Override
        protected void onBindViewHolder(@NonNull ViewHolderServicio holder, int position, @NonNull ModelServicio model) {
            holder.setDetails(getApplicationContext(), model.getNombreServicio(), model.getImagenPerfil());
        }
        @NonNull
        @Override
        public ViewHolderServicio onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

            View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.servicioitem, viewGroup, false);
            ViewHolderServicio viewHolder = new ViewHolderServicio(itemView);
            return viewHolder;
        }
    };
    RVbot.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

}

@Override
protected void onStart() {
    super.onStart();
    firebaseRecyclerAdapter.startListening();
    RVbot.setAdapter(firebaseRecyclerAdapter);

    }
}

1 个答案:

答案 0 :(得分:0)

您尝试过

firebaseRecyclerAdapter.notifyDataSetChanged();

在调用适配器后?