我有自定义cursoradapter的列表视图。它包含几百个项目。向下滚动是平稳而快速的,但是滚动备份一直冻结。我不会在UI线程中加载图像或某些操作。只能从光标获得几个值并将其设置为文字视图Listview滚动冻结
private class EpisodesAdapter extends CursorAdapter {
LayoutInflater inflater;
public EpisodesAdapter(Context context) {
super(context, null, false);
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = inflater.inflate(R.layout.list_item_episode, parent, false);
view.setBackgroundResource(R.drawable.abs__list_selector_holo_light);
return view;
}
@Override
public void bindView(View view, final Context context, final Cursor cursor) {
final String title = cursor.getString(EpisodesQuery.EPISODE_TITLE);
final String episodeId = cursor.getString(EpisodesQuery.EPISODE_ID);
final String time = cursor.getString(EpisodesQuery.EPISODE_PUBLISHED_AT);
final String episodeUrl = cursor.getString(EpisodesQuery.EPISODE_URL);
final int stateId = cursor.getInt(EpisodesQuery.EPISODE_STATE_ID);
((TextView) view.findViewById(R.id.title)).setText(title);
......
}
}
有些想法可能导致此问题的原因是什么?
如果应用程序完全冻结,可能会有logcat消息来解释问题。你有看到什么吗? –
您是否尝试过像视图持有者或异步任务加载器一般的性能改进? – jsmith
我认为你需要在使用光标后关闭它。检查logcat它可能显示一些信息关于为什么它的冻结 –