我有一个viewflipper,其中包含3个孩子,一个GridView
和两个自定义ListView
,每个视图都有不同的适配器,每个适配器都有一个带有Universal Image Loader库的图像加载器。
所有适配器的项目都是相同的,我的目标是以不同的方式(grid,list和big list)显示内容,但是这种方式每个图像加载3次。有什么方法可以一次加载图像并将其显示给孩子们吗?
最佳答案
因此,您需要三个视图共有的对象,该对象管理图像加载并保存内存。您已拥有:它是Adapter
。仅使用一个,只需切换布局即可。
例如,您可以在适配器内部定义此方法:
int layoutResId;
public void changeLayout(int layoutResId) {
this.layoutResId = layoutResId;
notifyDataSetChanged(); //force the adapter to call getView() again
}
然后,在您的
getView()
方法中,您只需为layoutResId
定义的布局充气。