在Android上使用LoaderManager时,我应该对结果进行分页吗?

时间:2014-12-22 21:00:15

标签: android pagination

假设我在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);
}

1 个答案:

答案 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...
    }
}
});