【发布时间】:2014-02-21 16:11:22
【问题描述】:
我正在尝试从数据库中获取数据(大约 20k 行)并在列表视图中显示。 我正在使用 cursorloader + cursoradapter: 一切都很好,但是当我快速滚动列表视图时它仍然滞后。 这是我的光标适配器:
public class IssueCursorAdapter extends CursorAdapter {
private LayoutInflater inflater;
private Context mContext;
public IssueCursorAdapter(Context context, Cursor c) {
super(context, c);
inflater = LayoutInflater.from(context);
mContext = context;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
View view = inflater.inflate(R.layout.item_issue, parent, false);
holder.tvIssueStatus = (TextView) view.findViewById(R.id.tvIssueStatus);
...same code
view.setTag(holder);
return view;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder holder = (ViewHolder) view.getTag();
holder.tvIssueStatus.setText(cursor.getString(cursor.getColumnIndex("StatusDesc")));
.......same code
}
private static class ViewHolder {
TextView tvIssueStatus;
TextView tvIssueType;
...same code
}
}
如何优化它?
【问题讨论】:
-
您可以使用标签模式而不是支架模式,我认为它会更快一些。 (虽然没有测试)
-
你能举个例子吗?
-
但最好的办法是使用惰性列表。