我正在编写一段代码,其中我有一个列表视图和一个自定义元素(项目):relativelayout、textview、imageview 等。
public View getView(int position, View convertView, ViewGroup parent) {
WindowManager wm = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
int widthScreen = display.getWidth();
int heightScreen = display.getHeight();
if (convertView == null) {
convertView = inflater
.inflate(R.layout.program_specific_item, null);
viewHolder = new ProgramInitialViewHolder();
viewHolder.photo = (ImageView) convertView
.findViewById(R.id.image_photo);
.findViewById(R.id.start_time);
viewHolder.endTime = (TextView) convertView
.findViewById(R.id.end_time);
viewHolder.type.setFocusable(false);
viewHolder.endTime.setFocusable(false);
viewHolder.startTime.setFocusable(false);
convertView.setTag(viewHolder);
} else {
viewHolder = (ProgramInitialViewHolder) convertView.getTag();
}
final Event element = schedule.get(position);
try {
imageLoader.DisplayImage(schedule.get(position).getPicture(),
viewHolder.photo);
} catch (Exception g) {
g.printStackTrace();
} return convertView; } -END-
我实现了 viewHolder 模式,并尝试包含延迟加载代码以提高性能。似乎每次我向上/向下滚动时,我的图像都会被回收,并且延迟加载和自动显示图像(刷新)不起作用:我需要滚动才能以视觉方式获取图像(即使在逻辑上它们已经存在)。
那么,我应该停止使用这个 viewHolder 模式还是应该做其他事情才能成功创建我的列表视图和延迟加载?
PS:我已经检查了所有延迟加载和查看器模式的链接。