0

我有一个相当昂贵的布局,我膨胀到一个列表视图的孩子。如果列表视图显示 5 个孩子的吃饭时间getView()只会增加我昂贵的布局中的 5 个(也许多一两个)。然后重复使用它。这个过程可能需要一些时间,但没关系。(同时我从互联网下载数据,所以不会破坏用户体验)。

问题是,如果我滚动,在滚动开始时,convertView is null列表视图需要再膨胀一次。这仅在我第一次滚动时发生。有没有办法避免这种情况?请注意,我不会调整任何子项或 Listview 的大小。有没有办法在开始时增加额外的视图,这样我就可以避免滚动滞后?

更新还要具体:

我的列表视图显示了 3 行半.. 含义 4.适配器充气 5.适配器什么来充气另一个?也许有一个更优雅的解决方案

4

1 回答 1

1

为什么不在您的活动开始时或在适配器的构造函数中创建视图缓存?如果有可用的缓存,getView() 可以从该缓存中返回视图,或者如果没有可用的缓存视图,则可以像通常那样创建自己的视图。

(不过,我不建议创建超过 n+1 个视图,其中 n 是您希望在任何时候在屏幕上拥有的视图数。我强烈建议不要尝试将旧视图回收回缓存! )

于 2011-08-04T18:35:56.960 回答