Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java recyclerview中的图像在Croll上不可见_Java_Android_Android Recyclerview - Fatal编程技术网

Java recyclerview中的图像在Croll上不可见

Java recyclerview中的图像在Croll上不可见,java,android,android-recyclerview,Java,Android,Android Recyclerview,我试图读取是否有任何图像,如果图像为空,我会使PostCard中的imageview消失。如果没有,则使用滑动加载 当我第一次加载recyclerview时,它就工作了。但是在一些滚动之后,这些图像视图就不可见了(View.gone) onBindViewHolder: DataSnapshot d = topics.get(position); holder.text.setText(d.child("caption").getValue(String.class)); if

我试图读取是否有任何图像,如果图像为空,我会使PostCard中的imageview消失。如果没有,则使用滑动加载

当我第一次加载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);
    }
DataSnapshot d=topics.get(位置);
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()放入(holder.image);
}
否则{
holder.image.setVisibility(View.GONE);
}
holder.name.setText(d.child(“用户名”).getValue(String.class));
holder.category.setText(d.child(“category”).getValue(String.class));
长毫秒=System.currentTimeMillis();
long posttime=d.child(“time”).getValue(long.class);
长时差=毫秒后时间;
整数天=(整数)(时差/(1000*60*60*24));

如果(天),请尝试以下代码片段:

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);
      holder.image.setVisibility(View.VISIBLE);
}
else{
      holder.image.setVisibility(View.GONE);
}
当设置可见性时,它本身将不可见。 你需要在滑动加载图像时看到它,在加载图像时看到它 是空的


添加
holder.image.setVisibility(View.VISIBLE);
中,如果条件

请尝试以下代码片段:

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);
      holder.image.setVisibility(View.VISIBLE);
}
else{
      holder.image.setVisibility(View.GONE);
}
当设置可见性时,它本身将不可见。 你需要在滑动加载图像时看到它,在加载图像时看到它 是空的


添加
holder.image.setVisibility(View.VISIBLE);
if condition

中,在将图像视图滑动到设置时,最好先设置可见性

我们永远不知道glide library更新会发生什么,以防it library想要访问维度。尤其是您在else部分中使其
消失
,这与使
不可见有点不同

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);
                }

在您将图像视图传递到“滑动”设置时,最好先设置可见性

我们永远不知道glide library更新会发生什么,以防it library想要访问维度。尤其是您在else部分中使其
消失
,这与使
不可见有点不同

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);
                }

RecyclerView
首次为第一个可见的数据对象创建新视图,当您滚动加载其他项目时,它将重用已滚动到顶部的视图,并再次为新数据项目重用这些视图

因此,无论该视图第一次创建时的可见性状态如何,它都将被保留,并将用于其他项目

您需要做的是显式设置视图
可见
以再次显示:

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);
            }

RecyclerView
首次为第一个可见的数据对象创建新视图,当您滚动加载其他项目时,它将重用已滚动到顶部的视图,并再次为新数据项目重用这些视图

因此,无论该视图第一次创建时的可见性状态如何,它都将被保留,并将用于其他项目

您需要做的是显式设置视图
可见
以再次显示:

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);
            }

我认为它不会影响图像不为空的特定位置。是的,代码对我很有用。非常感谢。我可以在5分钟后接受它作为答案。很乐意帮助:)我认为它不会影响图像不为空的特定位置。是的,那个代码对我很有用。非常感谢你。。我可以在5分钟后接受它作为答案。。很乐意帮助:)