0

我试图显示包含图像的项目列表。我正在使用Firebase UI在片段内初始化一个recyclerview。 当我运行应用程序时,只有少数图像显示正常,但其他图像不显示。即使我试图两次显示相同的图像,它在一个项目中显示,另一个项目不显示。我已经尝试过毕加索和Glide,两人的情况都是一样的。Glide/Picasso仅将部分图像加载到Firebase Recyclerview内部的片段 - 使用Firebase UI

有什么建议吗?

我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); 

    } 

回答

0

你试图绑定您的适配器的OnBindViewholder内部图像。之前我曾使用毕加索。下面的代码在我的情况下工作正常 -

@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

我正在使用populateViewHolder。 我是新来的RecyclerView,我应该添加一个OnBindViewholder? 我已将我的代码添加到问题中。 –

+0

'populateViewHolder'是FirebaseUI的'onBindViewHolder'变体。请参阅https://github.com/firebase/FirebaseUI-Android/blob/master/database/src/main/java/com/firebase/ui/database/FirebaseRecyclerAdapter.java#L216 –

相关问题