android – ListView在添加新项目时闪烁

android – ListView在添加新项目时闪烁,第1张

概述我正在使用ArrayAdapter在ListView中设置具有无限滚动功能的数据. ListView的行中有一个 ImageView和两个TextView.首先,我正在加载带有10个项目的ListView,然后向下滚动,我调用setonscrolllistener中的Web服务将下一个10项加载到ListView.当新项目添加到Arraylist时,我只需调用adapter.notifysetda 我正在使用ArrayAdapter在ListVIEw中设置具有无限滚动功能的数据. ListVIEw的行中有一个 ImageVIEw和两个TextVIEw.首先,我正在加载带有10个项目的ListVIEw,然后向下滚动,我调用setonscrollListener中的Web服务将下一个10项加载到ListVIEw.当新项目添加到ArrayList时,我只需调用adapter.notifysetdatachanged告诉适配器刷新ListVIEw.

现在的问题是,每当新项目被添加到ListVIEw时,整个ListVIEw都会刷新,这会导致ListVIEw中已加载的图像闪烁.是的,我正在缓存光盘和内存中的所有图像,代码可以非常顺利地进行缓存.

我也尝试使用这个adapter.addall(myarrayList)将数据添加到适配器中,但它没有帮助. ImageVIEws仍在闪烁.我在StackOverflow上搜索了很多关于它的内容,发现你无法在不刷新整个ListVIEw的情况下在ListVIEw中添加和显示更多项目.我已经知道了,但必须有一些方法可以向ListVIEw添加新数据,而不是刷新已经加载的数据.

我正在设置这样的适配器.

public VIEw getVIEw(int position,VIEw vIEw,VIEwGroup parent)       {        int main = R.layout.layout;        VIEwHolder holder = null;        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        if (vIEw == null) {            holder = new VIEwHolder();            vIEw = inflater.inflate(main,null);            holder.image = (ImageVIEw) convertVIEw.findVIEwByID(R.ID.imagevIEw);            ///More stuff            vIEw.setTag(holder);        } else {            holder = (VIEwHolder)vIEw.getTag();        }        // Loading ImageVIEws by Urls        return vIEw;    }

有人可以对此有所了解吗?

解决方法 您似乎正在以正确的方式执行此 *** 作,因此问题可能来自您的imageLoader.如果网址相同,则不应在imagevIEw上再次设置图像.

例如您可以在imageVIEw上使用setTag(url)方法,并测试网址是否已更改.

希望这会帮助你.

总结

以上是内存溢出为你收集整理的android – ListView在添加新项目时闪烁全部内容,希望文章能够帮你解决android – ListView在添加新项目时闪烁所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存