【问题标题】:Custom adapter rebinds data to listview during scrolling自定义适配器在滚动期间将数据重新绑定到列表视图
【发布时间】:2011-09-11 11:55:33
【问题描述】:

我有一个将数据(标题、日期、图像)绑定到列表视图的自定义适配器。一切正常,但是当我滚动列表视图时,适配器似乎将其数据重新绑定到列表视图。它不会填充或复制数据,但会覆盖相同的数据位置。 类似的东西,尤其是当我展示图像时,这很烦人,因为列表视图滚动不流畅。 那么,如何阻止适配器重新绑定列表视图上的数据?

谢谢!

【问题讨论】:

    标签: android listview adapter


    【解决方案1】:

    那么,如何阻止适配器重新绑定列表视图上的数据?

    打断所有用户的手指,使他们无法滚动ListView

    或者,在您的 bindView() 方法或您用于绑定的任何其他方法(例如,ViewBinder)中做一个更有效的工作。例如,维护一个位图缓存(通过SoftReferences 或其他方式),这样您就不必从磁盘重新加载它们。

    【讨论】:

    • public View bindData(View view, int position) { if (data.get(position) == null) { return view; } 视频项 = data.get(position); aq = new AQuery(view); aq.id(R.id.title).text(item.getTitle()); aq.id(R.id.date).text(item.getDate()); aq.id(R.id.thumb).image(item.getImage(),false,true,100,R.drawable.icon);返回视图; }
    • 以上是将值设置为两个文本视图和一个图像视图的代码。我为此使用了 Android Query 库。每次滚动列表视图时都会运行此代码..
    • @Maverick:当然,每次滚动ListView 时它都会运行。这就是AdapterView 背后的意义所在。使用 Traceview 来具体查看代码中哪些地方比较慢,并修复它们以使它们运行得更快。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多