為RecyclerView新增分頁載入(上拉載入更多)功能

許佳佳233發表於2016-10-11

上一篇文章已經介紹瞭如何為RecyclerView新增FootView,在此基礎上,要新增分頁載入的功能其實已經很簡單了。
上一篇文章地址:為RecyclerView新增FootView和HeadView

效果:(原始碼在文章結尾)

這裡寫圖片描述

實現關鍵

在上一篇程式碼的基礎上,只需要在onBindViewHolder(ViewHolder holder, int position)函式中新增一定修改就可以了,如下:

@Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        //建立起ViewHolder中試圖與資料的關聯
        Log.d("xjj", getItemViewType(position) + "");
        //如果footview存在,並且當前位置ViewType是FOOT_TYPE
        if (isFootView && (getItemViewType(position) == FOOT_TYPE)) {
            holder.tvFootView.setText(footViewText);
            // 重新整理太快 所以使用Hanlder延遲兩秒
            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    max_count += 5;
                    notifyDataSetChanged();
                }
            }, 2000);

        } else {
            holder.tvViewHolder.setText(mData.get(position) + position);
        }
    }

在函式中,首先讓該item顯示“載入中。。。”,然後使用Handler,延遲兩秒重新整理,邏輯內容主要有兩個,一個是顯示的最大容量增加5,二是重新整理Adapter的內容。

擴充延伸

筆者此處為了讓讀者容易理解,很多地方的使用比較粗糙,讀者真正使用的時候定然不會如此簡單,在此列出幾點,以供讀者自己學習:
1、FootView中一般不會僅僅是一個TextView,對UI有一定追求的讀者至少需要新增一個ProgressBar。
2、Adapter的內容一般不會直接用List傳入,需要從網路獲取之類,因此重新整理Adapter的內容一般就需要用到執行緒,而不是此處簡單的一個Handler就可以了。

原始碼地址:http://download.csdn.net/detail/double2hao/9650806

相關文章