在Adapter里面控制getCount(),让它返回多少,它就显示多少。

解决方案 »

  1.   

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    //firstVisibleItem为当前可见的第一条item的position
                    //visibleItemCount为当前可见的条数你可以根据这两个数值来操控adapter的notifycation
    }
    }
      

  2.   

    imageLoader.displayImage(imageUrls[position], imageView,options);
    这样怎么操控更新?????
      

  3.   

    imageLoader.displayImage(imageUrls[position], imageView,options);这个不是在adapter中执行么?你adapter更新的时候position在firstVisibleItem到firstVisibleItem+visibleItemCount之间才执行应该就行了吧
      

  4.   

    这个是在中adapter中的getview中的,我也知道position在firstVisibleItem到firstVisibleItem+visibleItemCount之间,但代码怎么实现啊。我是小白,我用自己的想法试了好多次了,这个问题已经纠结了我几星期了
      

  5.   

    你在imageLoader.displayImage(imageUrls[position], imageView,options)的外层加一个逻辑,
    if(position>=firstVisibleItem&&position<=firstVisibleItem+visibleItemCount&&滑动结束){
    imageLoader.displayImage(imageUrls[position], imageView,options);
    }
    滑动结束执行
    adapter.notifyDataSetChanged();
      

  6.   

    你可以加listener,当停止滑动时,再加载图片.
    在滑动过程中,你要你当前的position在哪,然后再根据visibleItem调用imageLoader.displayImage((position-i),imageview).
      

  7.   

    设置标签吗,具体代码怎么实现,可以说看看吗
    listview实现OnScrollListener,在 public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) 方法中保存visibleItemCount[因为滑动结束后,这个方法不调用,所以,不在此方法中判断加载图片],滑动结束时,当前position在adapter的getview方法中去保存.这两个数据都有了加载当前屏幕的就可以实现的了.
      

  8.   

    设置标签吗,具体代码怎么实现,可以说看看吗
    listview实现OnScrollListener,在 public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) 方法中保存visibleItemCount[因为滑动结束后,这个方法不调用,所以,不在此方法中判断加载图片],滑动结束时,当前position在adapter的getview方法中去保存.这两个数据都有了加载当前屏幕的就可以实现的了.
    本人小白一个,不明白
    可否帮忙写下
      

  9.   

    不行啊,不是只加载当前屏幕内的啊,拉到底,还是从上向加下加载,不会加载当前屏幕内那就是你的条件取的不对啊。你滑动停止的状态获得的对么?还有你停止的时候你的firstVisibleItem和visibleItemCount对么?你还是打印出来看看吧,逻辑上没问题,你的状态值设置的肯定不对
      

  10.   

    ]
    这样。。,默认isBusy是等于true的
      

  11.   

    不行啊,不是只加载当前屏幕内的啊,拉到底,还是从上向加下加载,不会加载当前屏幕内那就是你的条件取的不对啊。你滑动停止的状态获得的对么?还有你停止的时候你的firstVisibleItem和visibleItemCount对么?你还是打印出来看看吧,逻辑上没问题,你的状态值设置的肯定不对
    这样对吗??,图在楼上了。。
      

  12.   

    我去你的条件为啥直接是true啊,你的isBusy干啥用的啊
      

  13.   

    不行啊,不是只加载当前屏幕内的啊,拉到底,还是从上向加下加载,不会加载当前屏幕内那就是你的条件取的不对啊。你滑动停止的状态获得的对么?还有你停止的时候你的firstVisibleItem和visibleItemCount对么?你还是打印出来看看吧,逻辑上没问题,你的状态值设置的肯定不对
    这样对吗??,图在楼上了。。
    我去你的条件为啥直接是true啊,你的isBusy干啥用的啊 
      

  14.   

    不行啊,不是只加载当前屏幕内的啊,拉到底,还是从上向加下加载,不会加载当前屏幕内那就是你的条件取的不对啊。你滑动停止的状态获得的对么?还有你停止的时候你的firstVisibleItem和visibleItemCount对么?你还是打印出来看看吧,逻辑上没问题,你的状态值设置的肯定不对
    这样对吗??,图在楼上了。。
    我去你的条件为啥直接是true啊,你的isBusy干啥用的啊 
    也不是加载当前屏幕内的,还是从上向下加载,不信我发源码给你看。
      

  15.   

    你应该把adapter的更新和isBusy=false放一起。
      

  16.   

    不行啊,不是只加载当前屏幕内的啊,拉到底,还是从上向加下加载,不会加载当前屏幕内那就是你的条件取的不对啊。你滑动停止的状态获得的对么?还有你停止的时候你的firstVisibleItem和visibleItemCount对么?你还是打印出来看看吧,逻辑上没问题,你的状态值设置的肯定不对
    这样对吗??,图在楼上了。。
    我去你的条件为啥直接是true啊,你的isBusy干啥用的啊 
    也不是加载当前屏幕内的,还是从上向下加载,不信我发源码给你看。只有当滑动结束时,才会加载,而且是只加载当前屏幕内的图片 我想知道你到底想要啥效果
      

  17.   

    getview中不用adapter.notifyDataSetChanged()吗??我试试
      

  18.   

    getview中不用adapter.notifyDataSetChanged()吗??我试试
    把adapter.notifyDataSetChanged()放在isBusy不行哦,只显示当前屏幕的图片,然后下拉就连默认图片都 没了
      

  19.   

    getview中不用adapter.notifyDataSetChanged()吗??我试试
    把adapter.notifyDataSetChanged()放在isBusy不行哦,只显示当前屏幕的图片,然后下拉就连默认图片都 没了
    你再具体说一下你想要啥效果,我明天给你回复
      

  20.   

    getview中不用adapter.notifyDataSetChanged()吗??我试试
    把adapter.notifyDataSetChanged()放在isBusy不行哦,只显示当前屏幕的图片,然后下拉就连默认图片都 没了
    你再具体说一下你想要啥效果,我明天给你回复
    就是只有当滑动结束时,才会加载,而且是只加载当前屏幕内的图片 的效果
    把adapter的更新和isBusy=false放一起,第一次只显示当前屏幕内的图片,然后下拉后,后面的图片就显示不出来了,而且连背景的默认图片也显示不出来
      

  21.   

    getview中不用adapter.notifyDataSetChanged()吗??我试试
    把adapter.notifyDataSetChanged()放在isBusy不行哦,只显示当前屏幕的图片,然后下拉就连默认图片都 没了
    你再具体说一下你想要啥效果,我明天给你回复
    就是只有当滑动结束时,才会加载,而且是只加载当前屏幕内的图片 的效果
    把adapter的更新和isBusy=false放一起,第一次只显示当前屏幕内的图片,然后下拉后,后面的图片就显示不出来了,而且连背景的默认图片也显示不出来下拉刷新?下拉你把变量值初始化没?
      

  22.   

    getview中不用adapter.notifyDataSetChanged()吗??我试试
    把adapter.notifyDataSetChanged()放在isBusy不行哦,只显示当前屏幕的图片,然后下拉就连默认图片都 没了
    你再具体说一下你想要啥效果,我明天给你回复
    就是只有当滑动结束时,才会加载,而且是只加载当前屏幕内的图片 的效果
    把adapter的更新和isBusy=false放一起,第一次只显示当前屏幕内的图片,然后下拉后,后面的图片就显示不出来了,而且连背景的默认图片也显示不出来下拉刷新?下拉你把变量值初始化没?
    isBusy初始化??, 在那初始化?,可不可以给你我QQ,我的QQ384214402
      

  23.   

    看在100分,回复如下:imageloader 适合异步加载,虽然我没看过它的源码。楼主要求实现的东东,就算不用 imageloader 也可以自己实现。我的方案:
    起一个线程A(别把这个想的太复杂) 专门处理解码图片。
    listview, adapter之类,按照正常逻辑,get view 要复用View。需要特殊处理的地方:getView时 给ImageView 预先设置一个等待加载的图,然后把请求提交到A,由A处理完再 发消息通知ListView中对应的子View 刷新图片。基本思路就是这样,代码就不上了。可以先试用下 sample apk 在此