使用毕加索在ImageView中加载图像后,TextView(与ImageView一起在RelativeLayout中)被隐藏

时间:2019-01-21 17:31:46

标签: android recycler-adapter picasso android-relativelayout

我已经设置了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);时,文本显示了。

这是怎么了?

0 个答案:

没有答案