我遇到一个问题,即多次调用notifyDataSetChanged()
会冻结与listview的交互一小段时间。
基本上我的应用程序将一堆图像加载到listview中。每次加载后,它都会发布到ui线程。 ui线程将图像添加到listarray,然后调用notifyDataSetChanged()
。
当您在列表中选择图像时,它会突出显示。当我为每个图像调用notifyDataSetChanged()
时,列表中三个点击中的每一个都可能实际选择。如果我降低notifyDataSetChanged()
,我会获得更好的点击率并让它选择项目。
有人对此有何提示?
似乎6个拇指可见(没有变化)被快速抛出并再次交换,但UI没有显示它们被删除的迹象。在此期间点击是无效的数据集。
答案 0 :(得分:1)
不要在UI线程中调用notifyDataSetChange()。如果它正在进行数据调用并更新ListView,它肯定会阻止用户交互。所以在后台线程中的AsyncTask做它在UI线程上没做,所以它会在用户滚动时更新列表视图