Android 将ImageView添加到RecyclerView项目布局

Android 将ImageView添加到RecyclerView项目布局,android,android-recyclerview,android-imageview,Android,Android Recyclerview,Android Imageview,我有一个带有项目的RecyclerView,它有时会显示多达三个图标。 目前,我只是将ImageViews动态添加到onBindmetod中的布局中,但有时ImageViews添加到错误的项目中。 我也读过一些关于加载图像的问题,最好的方法是什么?在您的custom_row.xml或任何您命名的文件中定义三个imagevie。设置包裹内容的宽度和水平中心的重力,这样可以很好地显示内容。 在您的onBindViewHolder(ItemViewHolder ivHolder,int位置)中,您必须

我有一个带有项目的
RecyclerView
,它有时会显示多达三个图标。 目前,我只是将
ImageViews
动态添加到
onBind
metod中的布局中,但有时
ImageViews
添加到错误的项目中。
我也读过一些关于加载图像的问题,最好的方法是什么?

在您的custom_row.xml或任何您命名的文件中定义三个imagevie。设置包裹内容的宽度和水平中心的重力,这样可以很好地显示内容。 在您的
onBindViewHolder(ItemViewHolder ivHolder,int位置)
中,您必须执行以下操作: 根据当前位置,您在
GONE
VISIBLE
上设置了1、2或3个imageview可见性。因此,图像将始终位于水平方向的中心。 然后用图像填充ImageView。我想就是这样。这对我有用


别忘了在
ItemViewHolder
构造函数中定义3个imageview。

在自定义的_row.xml或您命名的任何内容中定义三个imagevie。设置包裹内容的宽度和水平中心的重力,这样可以很好地显示内容。 在您的
onBindViewHolder(ItemViewHolder ivHolder,int位置)
中,您必须执行以下操作: 根据当前位置,您在
GONE
VISIBLE
上设置了1、2或3个imageview可见性。因此,图像将始终位于水平方向的中心。 然后用图像填充ImageView。我想就是这样。这对我有用


不要忘记在你的
ItemViewHolder
构造函数中定义3个ImageView。

ViewHolder可以从另一个位置回收,因此如果你在onBindViewHolder中添加视图,它需要根据位置的依赖关系添加或删除它们。

ViewHolder可以从另一个位置回收,因此,如果您在onBindViewHolder中添加视图,则需要添加或删除(如果存在)
位置依赖项上的视图。

这是一个常见问题,因为您需要同步对holder的访问。 有一些相当好的库可以处理位图缓存、重用和池的这种情况和其他情况

可用于本地和网络映像:

   Glide.with(context).load(items.get(i).getImage()).into(viewHolder.image);
或仅针对网络图像截取或切换到其NetworkImageView小部件,然后在适配器中:

image.setImageUrl(items.get(i).getImage(), imageLoader);

这些可能使用不同的方法,但它们都知道该怎么做。

这是一个常见问题,因为您需要同步对持有者的访问。 有一些相当好的库可以处理位图缓存、重用和池的这种情况和其他情况

可用于本地和网络映像:

   Glide.with(context).load(items.get(i).getImage()).into(viewHolder.image);
或仅针对网络图像截取或切换到其NetworkImageView小部件,然后在适配器中:

image.setImageUrl(items.get(i).getImage(), imageLoader);

这些可能使用不同的方法,但它们都知道该怎么做。

在什么情况下会发生错误?您可以发布适配器吗code@Sam当我添加新项目时,这是因为viewholder。我也有同样的问题,但我解决了。我会在一分钟内发布我的代码。你能显示你的RecyclerView.Adapter吗?在什么情况下会发生错误?你能发布你的适配器吗code@Sam当我添加新项目时,这是因为viewholder。我也有同样的问题,但我解决了。我会在一分钟内发布我的代码。你能展示你的RecyclerView.Adapter吗?谢谢,但我真的不想/需要任何布局建议。图标不是我的项目布局中唯一的东西。我知道从一开始我可以在布局中有三个
图像视图
,但我认为有更好的方法…谢谢,但我真的不想/需要任何布局建议。图标不是我的项目布局中唯一的东西。我知道从一开始我可以在版面中有三个
imageview
,但我认为有一个更好的方法…添加imageview是否有效,或者我应该在每个项目中都有三个imageview,即使它们不应该显示图像?你必须在支架中已经有图像视图。您在oncreate ViewHolder中创建了这些视图添加ImageView可以吗?或者我应该在每个项目中都有三个ImageView,即使它们不应该显示图像?您必须让图像视图已经在holder中。您可以在oncreate viewholder中创建这些视图