recyclerview底部載入方案

2021-08-07 20:56:08 字數 2102 閱讀 4759

因為專案中多個列表都需要用到底部載入,所以我想了乙個簡單的底部載入方案。

先分析一下整個底部載入過程吧,首先為recyclerview設定滑動監聽,recyclerview滑動時判斷是否到達底部,到達就呼叫載入更多的方法。另外,還要控制載入過程的同步。

實現:1.建立了乙個類用來管理整個底部載入過程:

package sdu.edu.cn.utribe.bean;

import android.support.v7.widget.recyclerview;

import sdu.edu.cn.utribe.util.tool;

/** * created by lenovo on 2017/8/26.

*/public class bottommanager else

}).start();}}

}});

}public boolean isloading()

public void setloading(boolean loading)

public boolean isend()

public void setend(boolean end)

public recyclerview getrv()

public void setrv(recyclerview rv)

public inte***ce task

}

類中持有的幾個變數:loading標誌當前是否在載入,end標誌是否到底(沒有更多資料),rv就是目標recyclerview,task是判斷到底時要呼叫的載入更多的方法,是乙個介面。

tool.isslidetobottom是我寫在工具類裡的乙個靜態方法,根據recyclerview的滑動距離判斷是否到底。

//判斷列表是否滑到底部

public static boolean isslidetobottom(recyclerview recyclerview)

2.activity中的使用:

建立乙個botommanager例項,傳入目標列表和載入更多的方法

manager=new bottommanager(rv, new bottommanager.task() 

});

在載入更多的方法中,載入完畢後設定manager的loading為false,如果獲取到的是空陣列設定end為true(這裡用了retrofit和gson)

private void getdata(int offsets) 

});}

@override

public void onerror(throwable e)

@override

public void onnext(responsebody responsebody) .gettype();

listlist1= new gson().fromjson(obj.getstring("data"),listtype);

log.v("tag","我的帖子:"+obj.getstring("data"));

if (list1.size()<=0)

list.addall(list1);

break;

case 300:

break;

case 400:

break;

}} catch (jsonexception e) catch (ioexception e)

}});

}

3.其他

這裡判斷recyclerview是否到底的方法(isslidetobottom)不適用於巢狀在滾動條中的recyclerview,因為巢狀之後滾動行為完全是滾動條的滾動行為,而滾動條占得高度是自己的完全高度,recyclerview的isslidetobottom永遠會返回真。所以這種情況下要監聽滾動條是否到底:

scroll.setonscrollchangelistener(new nestedscrollview.onscrollchangelistener() 

}});

RecyclerView去除底部分割線

recyclerview 預設的分割線divideritemdecoration 在最後乙個item顯示的時候也會有乙個分割線,影響應用整體的美觀。通過divideritemdecoration 原始碼發現分割線的行數是通過childcount來判斷的,而childcount正是我們分割線的個數,那...

MathType給公式底部加箭頭的教程

箭頭符號在數學中很常用的乙個符號了,不管是在推導過程用以表示邏輯關係,還是表示向量,箭頭符號都起著它就的作用。我們經常習慣給公式或者字母的上部加上箭頭,那如何給公式的底部加上箭頭呢?下面來介紹word公式編輯器 mathtype底部箭頭的編輯方法。具體操作步驟如下 1.按照自己的使用習慣將matht...

SceneKit 給底部加陰影的n種方式

本節學習目標 教大家三種給模型新增新增陰影的方式 第一種 讓設計直接給模型新增陰影,如下面 第二種 給模型底部新增地板,已系統的飛機模型為例 它是沒有陰影,接下來就是如何製作陰影 給飛機地下放置乙個floor模型,就會有陰影了 但是陰影不太明顯,如何讓陰影更加明顯一點呢?設定scnfloor 模型的...