LongListSelector的Item里使用Image加载网络图片必须注意的问题
来源:互联网 发布:基因表达式编程 编辑:程序博客网 时间:2024/06/03 13:53
当一个列表的Item数很多时,为了效率与节省资源,我们不得不使用LongListSelector,它只保存了当前可见Item数的UI内存,当列表滑动时,比如Item1的位置滑动后显示的是Item10,它直接把Item1对应UI控件的DataContext从Item1直接变成tem10,也就是说UI控件依然是Item1的UI控件,避免了重新创建UI控件的资源开销。
假如ItemTemplate里用到了Image,然后将它的Source绑定到Item的ImageUrl属性,让它自动加载网络图片,这是常用做法,不会有什么问题。
但是,如果你还给这个Image注册了事件的话,比如你想注册ImageFailed事件在加载失败时显示本地的一张加载失败图片,问题就来了,你会发现各种图片错乱事件,应该加载正常的图片却显示了加载失败图片等……。原因就是列表滚动时Image的DataContext已经变化了,比如Item1的Image加载失败响应事件ImageFailed时,实际它的DataContext已经是Item10,你在事件里把Image显示加载失败图片时,实际是显示在了当前的Item10的Image上,就造成了图片错乱事件。
所以只能避免使用注册事件来显示加载失败图片,比如多放一个Image2在相同位置显示加载失败图片,在Image加载网络图片成功时显示在了Image2的前面,看起来像是Image2从加载失败图片变成了网络图片。
0 0
- LongListSelector的Item里使用Image加载网络图片必须注意的问题
- 异步加载网络图片之Universal-Image-Loader的使用
- 使用SimpleDateFormat必须注意的问题
- 使用SimpleDateFormat必须注意的问题
- Android 中网络图片加载(包括本地图片的加载) 框架 universal image loader 的简单使用
- loader加载图片的注意问题
- 最流行加载网络图片工具的使用(universal-image-loader-1.9.2)
- Android网络加载图片universal-image-loader的工具类以及Glide使用
- 网络图片异步加载类库--Android-Universal-Image-Loader的使用
- Android 下载网络图片注意的问题
- [Android初级]关于使用universal-image-loader加载imagelist出现图片闪烁的问题
- 使用Android-Universal-Image-Loader异步加载图片遇到的问题
- Android 使用图片异步加载框架Universal Image Loader的问题
- 使用自定义的item、Adapter和AsyncTask、第三方开源框架PullToRefresh联合使用实现自定义的下拉列表(从网络加载图片显示在item中的ImageView)
- Android开发之搜芽项目的图片加载问题(使用Volley进行网络图片加载)
- Jquery修改image的src属性,图片不加载问题
- Universal-Image-Loader图片重新加载的问题
- Jquery修改image的src属性,图片不加载问题
- Java数组(初学者必看)
- Ubuntu安装为知笔记
- 在ArcGlobe三维环境中进行数据查询(.net)
- dg主备库切换步骤
- ORB算法
- LongListSelector的Item里使用Image加载网络图片必须注意的问题
- 数据泵IMPDP 导入工具的使用
- 简单图形编程学习(2)
- google 最佳实践 - ListView优化 (Making ListView Scrolling Smooth)
- dwr设置同步
- 开博庆祝贴
- LINQ的Select
- dwr使用手册根据项目整理
- Oracle导入导出