如何更改RecyclerView
中的行中的特定视图。 Adapter.notifyDataSetChanged
或Adapter.notifyItemChanged
更新行。但我需要更改行中的特定视图,而不触及此行中的其他视图。在回收站视图中更改行中的特定项目
回答
首先,使用Glide(通过谷歌),而不是毕加索。它更高效。其次,如果你的设备已经存在于你的高速缓冲存储器中,它不会再下载相同的图像。
现在, 只需更改列表中的数据,然后更新适配器或回收站视图。
里面你AdapterClass
创建一个接口,让我们说
public interface TheUpdater{
public void updateMyAdapter(int position);
}
然后实现在您的活动这个接口,并重写此方法。
现在,为了获得视图的位置。
您可以覆盖视图(按钮甚至整个父视图即布局)的onClick()
并执行以下语句。
mTappedPosition = getAdapterPosition();
listener.updateMyAdapter(mTappedPosition); //Update the adapter
其中mTappedPosition
是您的全局变量。
内,您的活动
@Override
updateMyAdapter(int position){
---- //Do stuff
mAdapter.notifyItemSetChanged(position);
}
我知道,但问题是,我有ImageView,通过毕加索下载源,并且每次我设置notifyDatasetChanged毕加索download图片和此更新对用户可见,我想阻止该问题 –
您能够获取适配器内视图的位置吗?如果是的话,那么我确实有一个解决方案。 – Dennis
是的,当我进行更改时,我可以获得位置 –
你可以用下面的代码
MyRecyclerAdapter.ViewHolder viewHolder= (MyRecyclerAdapter.ViewHolder) recycleView.findViewHolderForAdapterPosition(1);
viewHolder.txtView.SetText("Some Text");
我想避免图像加载问题,你必须使用图像的缓存技术。这样已经加载的图像将不会再次加载。
或
如果图像已经加载和每行显示同一图像设置,那么你可以保持一个布尔标志,以您的itemModel(具有适配器项目的数据的DTO)。并更改该型号,然后致电
yourListToAdapter(index).setFlag(showImage1); // showImage1 boolean flag
yourAdapter.notifyItemChanged(index);
- 1. 如何更改回收站视图中选定项目的文本颜色
- 2. 更新回收站视图的行项目数据
- 3. 从回收站视图行中的项目调用新活动
- 4. 回收站视图中的回收站视图
- 5. 更改RazorViewEngine查找特定项目(.Net核心)中的视图
- 6. 如何在android中获取回收站视图的特定位置的行?
- 7. 从回收站视图中删除项目会生成错误
- 8. 更改回收站视图中查看到ProgressDialog
- 9. 如何在回收站视图行中添加动态视图
- 10. 在回收站视图行中使用视图寻呼机?
- 11. 如何在回收视图中更新特定位置的视图?
- 12. 垂直回收站视图上的水平回收站视图
- 13. 更改列表视图中特殊项目的背景
- 14. 如何找出项目是在回收站视图中首次创建的?
- 15. 不同行的回收站视图
- 16. 更改树视图中选择项目
- 17. 设置并获取回收站视图的项目ID
- 18. 回收站视图项目之间的空间
- 19. 更新回收站视图textview?
- 20. 更新视图中响应回收视图项活动点击
- 21. 回收站项目将onPostExecute
- 22. 回收站视图中不工作
- 23. 滚动到回收站视图中下一项的顶部
- 24. 同时动画制作所有回收站视图项目
- 25. 更改WPF中树状视图的选定项目
- 26. 无法在回收站视图数据绑定Android中
- 27. Android - 从适配器外的回收站视图中删除项目
- 28. 开始活动,在回收视图中选择位置项目
- 29. 不回收特定视图类型RecyclerView
- 30. 在TFS 2015更新3(内部)中检索回收站中的工作项目
查看是的是?对不起,我ddnt得到的问题,你要改变行的标签,按钮颜色或整个行样式..?或者你想将整行视图更改为另一个布局xml? –
你好Vishnu KR! 我有两个imageViews和两个textViews。每次用户点击行时,我都希望每一行中的textVIews都改变它的文本。但问题是另一个imageView通过Picasso库获取它的源代码。每当我通过notifyDataSetChanged或其他方式更改文本时,毕加索都会更新imageView,并且它对用户是可见的。我想防止这种情况发生,所以问题是:如何更改行的特定视图,而不触及整行 –
哈......你说当时毕加索重新加载图像。所以我认为你需要使用图像缓存技术。因此,如果毕加索已经加载,毕加索将不会再次加载图像。或者下一个选项是通过在项目模型中使用标签来显示并隐藏图像 –