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中创建这些视图