viewType = ViewType.GRID_ITEM;\r
}\r
\r
- // Create View\r
- switch (viewType){\r
- case GRID_IMAGE:\r
- view = inflator.inflate(R.layout.grid_image, null);\r
- break;\r
- case GRID_ITEM:\r
- view = inflator.inflate(R.layout.grid_item, null);\r
- break;\r
- case LIST_ITEM:\r
- view = inflator.inflate(R.layout.list_item, null);\r
- break;\r
+ // create view only if differs, otherwise reuse\r
+ if (convertView == null || (convertView != null && convertView.getTag() != viewType)) {\r
+ switch (viewType) {\r
+ case GRID_IMAGE:\r
+ view = inflator.inflate(R.layout.grid_image, null);\r
+ view.setTag(ViewType.GRID_IMAGE);\r
+ break;\r
+ case GRID_ITEM:\r
+ view = inflator.inflate(R.layout.grid_item, null);\r
+ view.setTag(ViewType.GRID_ITEM);\r
+ break;\r
+ case LIST_ITEM:\r
+ view = inflator.inflate(R.layout.list_item, null);\r
+ view.setTag(ViewType.LIST_ITEM);\r
+ break;\r
+ }\r
}\r
\r
view.invalidate();\r