滑动(Glide)- Firebase中没有显示图像

3

我正在创建一个能显示帖子的应用程序,在主视图中添加新帖子后,只能看到文本,没有图片。

我尝试使用Picasso和Glide,但是没有结果。

protected void onStart() {
    super.onStart();

    Query query = FirebaseDatabase.getInstance().getReference().child("Post");

    FirebaseRecyclerOptions<PostList> options = new FirebaseRecyclerOptions.Builder<PostList>().setQuery(query, PostList.class).build();

    FirebaseRecyclerAdapter<PostList, PostListHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<PostList, PostListHolder>(options) {

        @Override
        public PostListHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.post_row, parent, false);
            return new PostListHolder(view);
        }

        @Override
        protected void onBindViewHolder(@NonNull PostListHolder holder, int position, @NonNull PostList model) {
            holder.setImage(getApplicationContext(), model.getImage(), holder);
            holder.setTitle(model.getTitle());
            holder.setDescription(model.getDescription());

        }
    };

        void setImage(Context ctx, String image) {

            ImageView postImage = mView.findViewById(R.id.postImg);
            Glide.with(ctx).load(image).dontAnimate().fitCenter().into(postImage);
        }

    }
1个回答

2

看起来问题出在这一行:

ImageView postImage = mView.findViewById(R.id.postImg);

你没有使用你的 RecyclerView.ViewHolder 图片,而是使用了一些与当前recyclerView行不相关的图片,所以Glide实际上是在工作,但你没有使用正确的图片。

你需要做类似于这样的事情:

ImageView postImage = holder.itemView.findViewById(R.id.postImg);
  holder.setImage(getApplicationContext(), model.getImage(),yourHolder);

"最初的回答": 从该方法访问您的holder.imageView:
void setImage(Context ctx, String image,ViewHolder holder) {  
  Glide.with(ctx).load(image).dontAnimate().fitCenter().into(holder.postImage);
}

我很乐意帮助你,但是你能说明一下为什么不正确吗? - Tamir Abutbul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接