我有一个viewflipper,其中包含3个孩子,一个GridView和两个自定义ListView,每个视图都有不同的适配器,每个适配器都有一个带有Universal Image Loader库的图像加载器。

所有适配器的项目都是相同的,我的目标是以不同的方式(grid,list和big list)显示内容,但是这种方式每个图像加载3次。有什么方法可以一次加载图像并将其显示给孩子们吗?

android - 使用查看器在不同的列表中显示相同的图像-LMLPHP

最佳答案

因此,您需要三个视图共有的对象,该对象管理图像加载并保存内存。您已拥有:它是Adapter。仅使用一个,只需切换布局即可。

例如,您可以在适配器内部定义此方法:

int layoutResId;
public void changeLayout(int layoutResId) {
    this.layoutResId = layoutResId;
    notifyDataSetChanged(); //force the adapter to call getView() again
}


然后,在您的getView()方法中,您只需为layoutResId定义的布局充气。

07-28 14:11