在android中,强制ListView/BaseAdapter在开始时膨胀所有需要的视图

在android中,强制ListView/BaseAdapter在开始时膨胀所有需要的视图,android,listview,view,adapter,baseadapter,Android,Listview,View,Adapter,Baseadapter,我有一个相当昂贵的布局,我膨胀到一个listview的孩子。 如果列表视图显示5个孩子的饮食时间getView()只会膨胀我昂贵的布局中的5个(可能多一个两个)。然后再利用它。 这个过程可能需要一些时间,但没关系(同时我从互联网下载数据,这样不会破坏用户体验) 问题是,如果我滚动,在滚动开始时,一个convertView为null,因此listview需要再次充气。这只是我第一次滚动时发生的。 有什么办法可以避免吗?请注意,我没有调整任何子对象或Listview的大小。有没有一种方法可以在Beg

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

问题是,如果我滚动,在滚动开始时,一个
convertView为null
,因此listview需要再次充气。这只是我第一次滚动时发生的。 有什么办法可以避免吗?请注意,我没有调整任何子对象或Listview的大小。有没有一种方法可以在Begging上增加额外的视图,从而避免滚动延迟

更新 具体而言:

我的列表视图显示3行半。。意思是4.适配器充气5。适配器是什么?给另一个适配器充气需要什么?也许有一个更优雅的解决方案


为什么不在活动启动时或在适配器的构造函数中创建视图缓存呢?如果有可用的视图,getView()可以从该缓存返回视图,如果没有可用的缓存视图,则可以创建自己的视图


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

听起来是个不错的方法(或多或少是我想到的)但是为了不进行硬编码,我必须计算listview将要显示的行数。我想我没有这方面的助手类。(需要计算子高度listview高度并在其后获得数字)也要具体说明:我的listview显示3行和半行。。意思是4.适配器充气5。适配器是什么?给另一个适配器充气需要什么?也许有一个更优雅的解决方案