我正在创建在主视图上显示帖子的应用。添加新帖子后,我们只会看到没有图像的文字。
我尝试使用毕加索和滑行。但是没有结果。
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);
}
}
答案 0 :(得分:2)
看起来问题出在这一行:
ImageView postImage = mView.findViewById(R.id.postImg);
您没有使用RecyclerView.ViewHolder
图像,而只是使用了一些与当前reyclerVie行无关的图像,因此滑行实际上是有效的,但您没有使用正确的图像。
您需要执行以下操作:
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);
}
答案 1 :(得分:0)
我尝试添加持有人:
public class PostListHolder extends RecyclerView.ViewHolder {
final View mView;
PostListHolder(@NonNull View itemView) {
super(itemView);
mView = itemView;
}
void setImage(Context ctx, String image, PostListHolder holder) {
ImageView postImage = mView.findViewById(R.id.postImg);
Glide.with(ctx).load(image).dontAnimate().fitCenter().into(holder.postImage);
}
}
但在行中
Glide.with(ctx).load(image).dontAnimate().fitCenter().into(holder.postImage);
还是有问题-postImage(无法解析postImage)
日志:
java.io.FileNotFoundException(/com.google.android.gms.tasks.zzu@dfa913d (No such file or directory))
java.io.FileNotFoundException(open failed: ENOENT (No such file or directory))