RecycleView新增下拉重新整理 上拉載入更多

2021-08-11 07:39:27 字數 4463 閱讀 9797

在google的android.support.v4包中,提供乙個swiperefreshlayout方法, 用於實現下拉重新整理,實現的過程也非常簡單, 那我們先來看一下swiperefreshlayout是什麼東西,其實從名字上來看,它就是乙個重新整理布局,我們來看它的繼承結構圖:

從上面的繼承結構可以看出, 它繼承於:viewgroup. 而我們常見的linearlayout, gridlayout等常見的布局,也是繼承於viewgroup。所以它的使用方法和我們常見的差不多,我們想要重新整理下拉重新整理我們的recyclerview, 那我們就要將我們的recyclerview布局檔案放到swipelayout中。

下面看具體過程和**:

1.首先在xml檔案中將滑動的控制項包裹在裡面<?

xml version="1.0"encoding="utf-8"?>

<linearlayoutxmlns:android=""android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent">

<textviewandroid:id="@+id/retorytext4"android:layout_width="match_parent"android:layout_height="wrap_content"android:text=""/>

<android.support.v4.widget.swiperefreshlayoutandroid:id="@+id/swipe"android:layout_width="match_parent"android:layout_height="match_parent">

<android.support.v7.widget.recyclerviewandroid:id="@+id/retorylistview"android:layout_width="match_parent"android:layout_height="match_parent"/>

android.support.v4.widget.swiperefreshlayout>

linearlayout>

2.在fragment中找到該控制項,然後設計乙個監聽,如果出現了乙個手勢下滑的動作,那麼就下拉重新整理。

swipe=view.findviewbyid(r.id.swipe);
//設定下拉顏色
swipe.setcolorschemeresources(r.color.coloraccent, r.color.colorprimary, r.color.colorprimarydark);
swipe.setonrefreshlistener(newswiperefreshlayout.onrefreshlistener()

});

//這個是設定資料

rec.setdata(list1);

//這個是設定完資料就是關閉動畫

swipe.setrefreshing(false);

//這個網路請求的**

private voidquery()

@override

public voidonfailure(callcall, throwable t)

});}

public inte***ceretrofitinter

前面就是下拉重新整理的**,很簡單把,就是設定一下布局,在弄個監聽,在設定幾個屬性,然後重新整理的時候開啟動畫,請求網路,載入設定資料,關閉動畫就行了。下面介紹下上拉載入,上拉載入就不能這樣寫了,現在如何實現呢?這個時候只能靠recyclerview了。
1.首先定義了乙個抽象類來繼承這個介面recyclerview.onscrolllistener,這樣就可以對這個介面進行資料的豐富,封裝大量的方法,abstract classendlessonscrolllistenerextendsrecyclerview.onscrolllistener 

@override

public voidonscrolled(recyclerview recyclerview,intdx,intdy)

}//這裡需要好好理解

if(!loading&&totalitemcount-visibleitemcount<=firstvisibleitem)

}/**

* 提供乙個抽象方法,在activity中監聽到這個endlessonscrolllistener

* 並且實現這個方法

* */

public abstract voidonloadmore(intcurrentpage);

}

2.***已經弄好了,接下來,我們就是在activity中為recyclerview新增這個***,實現抽象方法onloadmore()這樣就可以了。下面看主要**:我把這部分**放到了請求網路的裡面

mrycleview.addonscrolllistener(newendlessonscrolllistener(line)private voidloadmoredata(arraylist list) 

}}

4.載入乙個view做顯示用,但還沒搞明白,因為recycleview居然沒有addfootview這個方法,參考的部落格又是用適配新增的不懂了???
public voidcreateloadmoreview(view view)

好了上拉也就寫到這裡,下次再來修改吧

div新增下拉框

div 新增滾動條 分類 程式設計技術 div 新增滾動條只需要指定 overflow 屬性為 auto 即可,以下例項設定了 div 水平滾動條 例項菜鳥教程 學的不僅是技術,更是夢想!菜鳥教程 學的不僅是技術,更是夢想!菜鳥教程 學的不僅是技術,更是夢想!菜鳥教程 學的不僅是技術,更是夢想!嘗試...

為ext grid單元格新增下拉列表

先上效果圖 在初始化grid 中加入如下 store.addlistener load function st,rds,opts var tb new ext.tb.render tb tbid tb.add ext.getcmp menu tbid menu menu 01 menu 01.ren...

layui form 元件動態新增下拉框資料

1.html 提交資料 2.js var table var form layui.use form function 規定要傳送到伺服器的資料 beforesend function success function result form.render select 重新渲染 form.rend...