0

Ich versuche, eine Liste von Elementen anzuzeigen, die Bilder enthält. Ich benutze Firebase-Benutzeroberfläche, um eine Recyclerview innerhalb eines Fragments zu initialisieren. Wenn ich die App starte, werden nur ein paar der Bilder richtig angezeigt, aber alle anderen nicht. Auch wenn ich versuche, das gleiche Bild zweimal anzuzeigen, zeigt es in einem Element und in der anderen nicht. Ich habe sowohl Picasso als auch Glide ausprobiert und der Fall ist für beide gleich.Glide/Picasso lädt nur einige der Bilder in Firebase Recyclerview, innerhalb von Fragment - Firebase UI verwenden

Irgendwelche Vorschläge?

Mein FirebaseRecyclerView:

@Override 
public void onStart() { 
    super.onStart(); 

    FirebaseRecyclerAdapter<MyList, myListViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<...>(
      MyList.class, 
      R.layout.my_list_row, 
      myListViewHolder.class, 
      mDatabase 
    ) { 
     @Override 
     protected void populateViewHolder(myListViewHolder viewHolder, MyList model, int position) { 

      viewHolder.setTitle(model.getTitle()); 
      viewHolder.setLink(model.getLink()); 
      viewHolder.setImage(getContext(), model.getImage()); 

      viewHolder.mView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 

       } 
      }); 
     } 
    }; 



    mList.setAdapter(firebaseRecyclerAdapter); 

} 

//myList class 
public static class myListViewHolder extends RecyclerView.ViewHolder { 

    View mView; 

    public myListViewHolder(View itemView) { 
     super(itemView); 

     mView = itemView; 
    } 
public void setImage(Context ctx, String image) { 

     ImageView gift_image = (ImageView) mView.findViewById(R.id.listRowImageView); 
     //Picasso.with(ctx).load(image).resize(75,75).into(test_image); 
     Glide.with(ctx).load(image).into(test_image); 

    } 

Antwort

0

Haben Sie versucht, Bild in Ihrem Adapters OnBindViewholder zu binden. Ich habe Picasso vorher benutzt. Unten Code funktioniert gut in meinem Fall -

@Override 
public void onBindViewHolder(StoredNewsListHolder holder, int position) { 
    String t = notificationStoreList.get(position).getNotification_title(); 
    String b = notificationStoreList.get(position).getNotification_content(); 


    notification_title.setText(t); 
    notification_content.setText(b); 
    id_hiddenid.setText (String.valueOf(notificationStoreList.get(position). getId())); 
    if(notificationStoreList.get(position).getImage_url() != null){ 
     Picasso.with(context).load(notificationStoreList.get(position).getImage_url()).into(icon_notification); 
    } 
} 
+0

Ich benutze PopulateViewHolder. Ich bin neu in RecyclerView, sollte ich einen OnBindViewholder hinzufügen? Ich habe meinen Code zu der Frage hinzugefügt. –

+0

'populateViewHolder' ist FirebaseUIs Variante von' onBindViewHolder'. Siehe https://github.com/firebase/FirebaseUI-Android/blob/master/database/src/main/java/com/firebase/ui/database/FirebaseRecyclerAdapter.java#L216 –

Verwandte Themen