我已经设置了RecyclerView.Adapter
。在onBindViewHolder()
中,我正在使用Picasso
通过URL加载图像。
这里是PhotoRecyclerAdapter
:
public class PhotoRecyclerAdapter extends RecyclerView.Adapter<PhotoRecyclerAdapter.ViewHolder> {
private List<Photo> photos;
private Context mContext;
public PhotoRecyclerAdapter() {
photos = new ArrayList<>();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_photo, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
Photo photo = photos.get(position);
holder.imageBy.setText(photo.getUser().getFirstName());
Picasso.get().load(photo.getUrls().getSmall()).into(holder.imageView);
}
public void setPhotos(List<Photo> photos) {
this.photos = photos;
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return photos.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public final ImageView imageView;
public final TextView imageBy;
public ViewHolder(View view) {
super(view);
imageView = (ImageView) view.findViewById(R.id.imageView);
imageBy = (TextView) view.findViewById(R.id.imageBy);
mContext = view.getContext();
}
}
}
这里是item-photo.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/item_photo"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/imageBy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="12dp"
android:layout_marginStart="12dp"
android:text="TextView" />
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
tools:srcCompat="@tools:sample/backgrounds/scenic" />
</RelativeLayout>
在ImageView
中设置了图片,但在TextView
中没有显示任何内容,但是当我注释掉Picasso.get().load(photo.getUrls().getSmall()).into(holder.imageView);
时,文本显示了。
这是怎么了?