一次加载10个项目ListView Android

时间:2014-11-17 17:06:52

标签: android listview load adapter

我正在开发一个包含listview时间轴Feed的应用,一个独特的项目填满整个屏幕,然后我在Feed中导航,这些项目只有在屏幕上显示时才会加载,I需要在它们出现在屏幕上之前加载它们,比如一次加载10个项目。

我的适配器:

    public class FeedRowAdapter extends BaseAdapter {


        public FeedRowAdapter(Activity act, int resource, List<FeedView> arrayList)
                throws Exception {
            this.activity = act;
            this.row = resource;
            this.items = arrayList;
            this.layoutInflater = LayoutInflater.from(act);
        }


        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            View view = convertView;
            final ViewHolder holder;

            if (view == null) {
                holder = new ViewHolder();
                view = layoutInflater.inflate(row, null);
                // LayoutInflater inflater = (LayoutInflater) activity
                // .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                // view = inflater.inflate(row, null);

                view.setTag(holder);
            } else {
                holder = (ViewHolder) view.getTag();
            }                

            if ((items == null) || ((position + 1) > items.size()))
                return view;

            objBean = items.get(position);

            //Some stuff here

            return view;
        }

        @Override
        public int getCount() {
            // PUBLICAR Auto-generated method stub
            return items.size();
        }

        @Override
        public Object getItem(int position) {
            // PUBLICAR Auto-generated method stub
            return items.get(position);
        }

        @Override
        public long getItemId(int position) {
            // PUBLICAR Auto-generated method stub
            return position;
        }

    }

编辑: 我已经使用滚动来加载更多项目,但是这些项目有要加载的图像,并且只在项目出现在屏幕上时加载,我需要在显示之前加载图像,就像预加载一样。我使用Picasso lib加载图片。

提前致谢。

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案是检查最后一项是否可见,如果是,则加载更多项目。 为了检查最后一项是否在视图中,您可以使用以下函数和这些方法签名。

public abstract void onScroll (AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)

查看http://developer.android.com/reference/android/widget/AbsListView.OnScrollListener.html

这是一个完全符合您要求的http://mobile.dzone.com/news/android-tutorial-dynamicaly

的教程