Android - Listview暂停片刻,尽管没有新的膨胀完成



我有一个自定义行Listview。有~15行。每次一行被充气后,我把它们保存到Hashmap,这样我就不用再充气了。我的行数有限,所以我想我可以保存地图中的所有行。下次请求相同的行时,我只是将视图从Hashmap中拉出来并返回它。

所以,第一次滚动到底部时,它会口吃,这是可以理解的。
但问题是,即使所有视图已经放入Hashmap,如果我做一个快速滑动滚动从所有的方式从上到下(或从下到上),它滚动到几乎80%的距离平滑,然后"暂停"一会儿,然后继续滚动,最后在结束。剩下的20%也可以平滑滚动(但在PAUSE之后)。

我在public View getView(int position, View convertView, ViewGroup parent)函数中放入日志,并确保在初始滚动到底部后没有再次发生通货膨胀。

我也试过
mListView.setDrawingCacheEnabled(false); mListView.setScrollingCacheEnabled(false);

但是它没有用。我还能看到停顿。有人能帮我解决这个问题吗?

谢谢,Androbean .

我已经能够解决这个问题了。然而,真正的问题与我所看到的行为没有直接关系。

我像这样从PackageManager加载图像。
Drawable drawable = packageManager.getDrawable(info.provider.getPackageName(), info.previewImage, null);

这似乎取决于设备密度一些自动缩放已经发生,我得到一些不合理的大图像。一旦我开始缩小它们并开始使用适当大小的图像,问题就消失了。

!

我仍然想知道为什么滚动平滑到80%然后暂停&然后再次平滑下一个20%

最新更新