eoe 移动开发者论坛

 找回密码
 加入eoe

QQ登录

只需一步,快速开始

查看: 1140|回复: 4
收起左侧

[Android界面] ListView滑动删除无法正确更新

[复制链接]

签到天数: 48 天

连续签到: 1 天

[LV.5]常住居民I

2258

主题

1203

帖子

763

e币
发表于 2014-8-15 12:02:17 | 显示全部楼层 |阅读模式
10e币
本帖最后由 xjxuvup 于 2014-8-15 14:22 编辑

@P@sk. @37X21=777 @小贰不着急 @general @fortianwei @haoliuyou @hehui1860 @zjw681691 @海上双飞燕

我用了https://github.com/timroes/EnhancedListView 这个library来做滑动删除的ListView
然后使用Universal Image Loader这个library来做为异步加载图片
uil有用到这两个缓存
.cacheInMemory(true)
.cacheOnDisc(true)


我遇到的问题是,我做了100张图来测试,每张图上面我都编了流水号,比方说我目前把1这张图滑动,照理说删除后出现的应该是2这张图
但是我滑动删除后,出现的还是1这张图,不过我往下滑动,然后再滑到最上面后,出现的又正常了
网路上找了下资料,说要清除缓存,我也做了
但是情况依旧,请问有没有人遇过这种问题或者会的人 可以帮帮忙吗? 谢谢大家


----------补充内容---------------------
getViwe以及删除方法
  1. public View getView(int position, View convertView, ViewGroup parent) {
  2.                         // check layout resource value, mListItemLayout should be assigned with proper value in setLayout()
  3.                         if (mListItemLayout == Utils.DEFAULT_INT_NULL_VALUE) {
  4.                                 return null;
  5.                         }
  6.                        
  7.                         // Make sure we have a valid convertView to start with
  8.                         if (convertView == null) {
  9.                                 convertView = mInflater.inflate(mListItemLayout, null, false);
  10.                                 if (mChildLayoutParams != null) {
  11.                                         convertView.setLayoutParams(mChildLayoutParams);
  12.                                 }
  13.                         }

  14.                         // Fill action with icon and text.
  15.                         final Entry entry = mEntries.get(position);
  16.                         setView(convertView, entry);
  17.                         return convertView;
  18.                 }
  19.                
  20.                 public void remove(int position) {
  21.             mEntries.remove(position);
  22.             mHandler.sendEmptyMessage(0);
  23.         }
复制代码

setView方法内容
  1. @Override
  2.         protected void setView(View view, Entry entry) {
  3.                 final PictureEntry picture = (PictureEntry)entry;
  4.                 AutoAdjustHeightImageView image = Utils.getViewHolder(view, R.id.autoView);
  5.                 final ProgressBar progressBar = Utils.getViewHolder(view, R.id.progressBar);
  6.                 imageLoader2.displayImage(picture.picture01, image, options, new SimpleImageLoadingListener() {
  7.                         @Override
  8.                         public void onLoadingStarted(String imageUri, View view) {
  9.                                 progressBar.setProgress(0);
  10.                                 progressBar.setVisibility(View.VISIBLE);
  11.                         }

  12.                         @Override
  13.                         public void onLoadingFailed(String imageUri, View view,
  14.                                         FailReason failReason) {
  15.                                 progressBar.setVisibility(View.GONE);
  16.                         }

  17.                         @Override
  18.                         public void onLoadingComplete(String imageUri, View view,
  19.                                         Bitmap loadedImage) {
  20.                                 progressBar.setVisibility(View.GONE);
  21.                         }

  22.                         @Override
  23.                         public void onLoadingCancelled(String imageUri, View view) {
  24.                                 progressBar.setVisibility(View.GONE);
  25.                         }
  26.                        
  27.                 }, new ImageLoadingProgressListener() {
  28.                         @Override
  29.                         public void onProgressUpdate(String imageUri, View view, int current,
  30.                                         int total) {
  31.                                 progressBar.setProgress(Math.round(100.0f * current / total));
  32.                         }
  33.                 });

  34.         }
复制代码




签到天数: 98 天

连续签到: 1 天

[LV.6]常住居民II

3万

主题

3万

帖子

3万

e币
发表于 2014-8-15 14:15:03 | 显示全部楼层
这你不贴代码怎么帮你看?图片错乱肯定是哪里有问题啊,滑动一次之后正确,应该是缓存的图片做key-value对应有问题,按list的item项位置来做了对应肯定会获取到之前一号位置的图片的

签到天数: 48 天

连续签到: 1 天

[LV.5]常住居民I

2258

主题

1203

帖子

763

e币
 楼主| 发表于 2014-8-15 14:29:30 | 显示全部楼层
hehui1860 发表于 2014-8-15 14:15
这你不贴代码怎么帮你看?图片错乱肯定是哪里有问题啊,滑动一次之后正确,应该是缓存的图片做key-value对 ...

代码我补充上去了
我把图片缓存关掉后
情况依旧
所以我猜想是不是
getView的缓存机制也会发生问题
谢谢 帮忙

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

9

主题

212

帖子

2955

e币
发表于 2014-8-15 15:41:58 | 显示全部楼层
目测是getview代码写的有问题,具体没看,你这代码贴的太不负责 了。乱的一塌糊涂

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

9

主题

212

帖子

2955

e币
发表于 2014-8-15 15:42:52 | 显示全部楼层
我用侧滑删除,并用imageloader加载图片,就没这种问题
*滑动验证:
您需要登录后才可以回帖 登录 | 加入eoe

本版积分规则

推荐阅读
赞助商们

QQ|联系我们|小黑屋|手机版|eoe 移动开发者论坛 ( 京ICP备11018032 京公网安11010802020210  

GMT+8, 2017-5-1 02:54 , Processed in 0.533898 second(s), 23 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表
关闭

扫一扫 关注eoe官方微信