Android ListFragment有600页的书

Android ListFragment有600页的书,android,Android,我实现了一个ListFragment,它执行以下操作: 1-将图像文件(页面)加载到列表。(文件来自SD卡应用程序专用目录) 2-创建一个ListAdapter并将列表对象传递给它 3-将ListAdapter设置为ListFragment public class QReadingFragment extends ListFragment { private Context context; public QReadingFragment() { } @Ov

我实现了一个ListFragment,它执行以下操作:

1-将图像文件(页面)加载到列表。(文件来自SD卡应用程序专用目录)

2-创建一个ListAdapter并将列表对象传递给它

3-将ListAdapter设置为ListFragment

public class QReadingFragment extends ListFragment {
    private Context context;

    public QReadingFragment() {
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        context = getActivity();
        new QLoadPagesTask().execute(context.getExternalFilesDir(null));
    }

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
    }

    private class QLoadPagesTask extends AsyncTask<File, String, List<? extends QPage>> {

        @Override
        protected List<? extends QPage> doInBackground(File... files) {
            return QPageContract.preparePages(files[0]);
        }

        @Override
        protected void onPostExecute(List<? extends QPage> pages) {
            setListAdapter(new QReadingAdapter(context, pages));
        }
    }
}
公共类QReadingFragment扩展了ListFragment{
私人语境;
公共QReadingFragment(){
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
context=getActivity();
新建QLoadPagesTask().execute(context.getExternalFilesDir(null));
}
@凌驾
public void onListItemClick(列表视图l、视图v、整数位置、长id){
}

私有类QLoadPagesTask扩展了AsyncTask一种方法是使用一个最多可以容纳10个项的适配器,并检查
onScroll中最后一个可见项(AbsListView,int,int,int)
onScrollListener
。然后,当您到达末尾时,在适配器中加载接下来的10项并调用
适配器。notifyDataSetChanged()

使用较小的图像,看看有没有更好的方法?我正在考虑按需加载图像,同时加载用户上下滚动页面。(这些图像是书页,我也需要按正确的顺序显示)如果用户向下滚动的速度太快,比如说,他想进入最后一章。好的,当滚动状态为scroll\u state\u FLING时,只显示存根图像而不是原始书页,当它变为scroll\u state\u IDLE时,获取可见项目位置并显示这些位置的真实页面。您可以在onScro中获取滚动状态llStateChanged(AbsListView视图,int-scrollState)进一步里德:,int)