假设我在db上有1000个项目,我想使用LoaderManager在ListView上显示它们,我是否应该立即加载所有这些项目?或实现一个分页,例如50个项目,然后当用户滚动到最后得到50个......
如果分页是正确的方法,我该如何使用LoaderManager实现它?
示例Loader Manager代码:
@Override
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
return new CursorLoader(
getActivity(),
DbProvider.URI,
null,
null,
null,
Table.ID + " desc"
);
}
@Override
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
mAdapter.swapCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> cursorLoader) {
mAdapter.swapCursor(null);
}
答案 0 :(得分:1)
如果您有太多数据,分页总是很好。尝试一次加载大量行会减慢屏幕渲染速度,从而降低用户体验。
要实施分页,你可以做类似的事情
ListView lv = (ListView)findViewById(R.id.list_view);
lv.setOnScrollListener(new OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
//Check if the last view is visible
if (++firstVisibleItem + visibleItemCount > totalItemCount) {
//LOAD MORE CONTENT HERE...
}
}
});