recyclerview内的图像是不可见的onscroll

Kim*_*Kim 1 java android android-recyclerview

我试图读取是否有任何图像,然后如果图像为空,我使明信片中的imageview消失.如果没有,则使用Glide加载它.

它在我第一次加载recyclerview时起作用.但是在一些卷轴之后,那些图像视图变得不可见(View.gone)

onBindViewHolder:

DataSnapshot d = topics.get(position);
    holder.text.setText(d.child("caption").getValue(String.class));
    if (d.child("type").getValue(String.class)!=null&&d.child("type").getValue(String.class).equals("image")){
        Glide.with(c).load(d.child("image").getValue(String.class)).placeholder(R.drawable.background).centerCrop().into(holder.image);
    }
    else{
        holder.image.setVisibility(View.GONE);
    }
    holder.name.setText(d.child("username").getValue(String.class));
    holder.category.setText(d.child("category").getValue(String.class));
    long millis = System.currentTimeMillis();
    long posttime = d.child("time").getValue(Long.class);
    long timedifference = millis-posttime;
    int days = (int) (timedifference / (1000*60*60*24));
    if (days<2){
        holder.time.setText("Today");

    }else {
        holder.time.setText(days+" days ago");

    }
    if (d.child("pic").exists()){
        Glide.with(c).load(d.child("pic").getValue(String.class)).placeholder(R.drawable.background).centerCrop().into(holder.pic);
    }
Run Code Online (Sandbox Code Playgroud)

那我在哪里做错了?

lib*_*ib4 6

当您将图像视图传递给Glide进行设置时,最好先在您的案例中设置可见性.

我们永远不知道滑动库更新会发生什么,以防它想要访问维度.特别是你GONE在其他部分制作它,这与制作有点不同INVISIBLE.

if (d.child("type").getValue(String.class)!=null&&d.child("type").getValue(String.class).equals("image")){
      holder.image.setVisibility(View.VISIBLE);
        Glide.with(c).load(d.child("image").getValue(String.class)).placeholder(R.drawable.background).centerCrop().into(holder.image);

                }
                else{
                    holder.image.setVisibility(View.GONE);
                }
Run Code Online (Sandbox Code Playgroud)