Android – ListView – 按需调用getView()

Android – ListView – 按需调用getView(),第1张

概述我有一个ListView,它在每一行显示从互联网上提取的图像和一个字符串. 一般来说它工作正常.但是我希望控制视图(行)膨胀的方式.默认情况下,当行可见时,将调用适配器的getView()方法. 这当然不是最好的行为之一,因为如果我有一个包含数百条记录的ListView,并且我需要到达底部的那些,在滚动ListView时,将为每一行调用getView()方法,直到我到了页脚. 所以我想在滚动之后调 我有一个ListVIEw,它在每一行显示从互联网上提取的图像和一个字符串.

一般来说它工作正常.但是我希望控制视图(行)膨胀的方式.默认情况下,当行可见时,将调用适配器的getVIEw()方法.

这当然不是最好的行为之一,因为如果我有一个包含数百条记录的ListVIEw,并且我需要到达底部的那些,在滚动ListVIEw时,将为每一行调用getVIEw()方法,直到我到了页脚.

所以我想在滚动之后调用getVIEw并且ListVIEw处于暂停/空闲状态,但我不知道如何解决这个问题:

这是我开始的方式:

ListVIEw.setonScrollListener(new OnScrollListener() {    @OverrIDe    public voID onScrollStateChanged(AbsListVIEw vIEw,int scrollState) {        if(scrollState==SCRolL_STATE_IDLE){            // Invoke get vIEw only on visible items        }    }    @OverrIDe    public voID onScroll(AbsListVIEw vIEw,int firstVisibleItem,int visibleItemCount,int totalitemCount) {    }});

这是我的适配器的getVIEw:

@OverrIDepublic VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {    VIEwHolder holder;    if (convertVIEw == null) {        convertVIEw = mInflater.inflate(R.layout.row,parent,false);        holder = new VIEwHolder();        holder.Title = (TextVIEw) convertVIEw.findVIEwByID(R.ID.textVIEw);        holder.image = (ImageVIEw) convertVIEw.findVIEwByID(R.ID.imageVIEw);        holder.position = position;        convertVIEw.setTag(holder);    } else {        holder = (VIEwHolder) convertVIEw.getTag();    }    holder.Title.setText(data.get(position).getTitle());    holder.image.setimageResource(R.drawable.ic_launcher);    new LoadImageAsync(data.get(position).getUrl(),holder.image).execute();    return convertVIEw;}

请给我一些指示,看看我应该在哪里实现这一点:只在滚动后调用getVIEw(),并且仅针对可见项目.

解决方法 我最近读了一篇关于这个… here的文章.我没有尝试过,但它似乎是一个合理的理论.

基本上,他们主张添加一个布尔值,用于跟踪是否滚动,并将其用作适配器中的标志.如果布尔值为true(您正在滚动),则只在您的布局中绘制textvIEws.如果为false(您已停止滚动),则绘制所有内容.

通过使用notifyDataSetChanged(),您告诉适配器在不滚动时重绘可见视图.

总结

以上是内存溢出为你收集整理的Android – ListView – 按需调用getView()全部内容,希望文章能够帮你解决Android – ListView – 按需调用getView()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1134927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存