日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LtRecyclerView:自带上拉下拉,能增加头条目和尾条目的RecyclerView

發布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LtRecyclerView:自带上拉下拉,能增加头条目和尾条目的RecyclerView 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LtRecyclerView:自帶上拉下拉,能增加頭條目和尾條目的RecyclerView

點擊查看2.x版本,功能更強大

主要功能:

  • 自帶上拉加載和下拉刷新
  • 可以添加100條頭條目和尾條目(其實是可以無限的)
  • 可以設置沒有條目時展示的View
  • 示例:

Android Studio使用方法

  • 1.下載arr包:https://pan.baidu.com/s/1f0H2Ti-GDCp_xyFTfM8Zhw

  • 2.引用
    ltviews.aar放入libs文件夾
    app的Build.Gradle中寫:

android{... } repositories {flatDir {dirs 'libs'} }

app的Build.Gradle中引用:

compile name: 'ltviews-1.3.2', ext: 'aar'

compile 'com.android.support:recyclerview-v7:25.3.1'

并點擊按鈕重新構建

  • 3.在XML中使用(或者直接new LTRecyclerView())
<com.lt.ltviews.lt_recyclerview.LTRecyclerViewandroid:id="@+id/ltrv"android:layout_width="match_parent"android:layout_height="match_parent"></com.lt.ltviews.lt_recyclerview.LTRecyclerView>
  • 4.設置展示的方式
    **rv.setRVOrientation(LtrvOrientation ltrvOrientation);**支持ListView類型:'LtrvOrientation.VERTICAL_LISTVIEW’和GridView類型:‘LtrvOrientation.VERTICAL_GRIDVIEW’.
    如果是多列的,可以使用重載的方法(最后一個參數表示要顯示多少列)

  • 5.適配器類需要繼承LtAdapter,其中的方法都和原生方法名類似,用法一樣

  • 6.設置上拉和下拉監聽:ltrv.setOnUpAndDownListener(OnUpAndDownListener onUpAndDownListener);
    其中**up()**方法是上拉加載時調用,**down()**方法是下拉刷新是調用.

  • 7.設置條目點擊事件:適配器.setOnRvItemClickListener()

  • 8.取消下拉:ltrv.getSwipeRefreshLayout().setRefreshing(false);

  • 9.設置上拉時沒有更多數據了:適配器.setRefresh(false); true是上拉加載的效果(每次調用都會執行**.notifyDataSetChanged();**方法)

  • 10.混淆代碼

-keep class com.lt.ltrecyclerview.** { *;}

##示例代碼

LtAdapter adapter = new LtAdapter(getActivity()) {@Overridepublic RecyclerView.ViewHolder onLtCreateViewHolder(ViewGroup viewGroup, int i) {return null;}@Overridepublic int getLtItemCount() {return 0;}@Overridepublic void onLtBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {}};rv.setRVOrientation(getActivity(), LtrvOrientation.VERTICAL_LISTVIEW).setNoItemText("暫無數據").setAdapter(adapter).setOnUpAndDownListener(new OnUpAndDownListener() {@Overridepublic void up() {//上拉加載回調}@Overridepublic void down() {//下拉刷新回調}});adapter.setOnRvItemClickListener(new OnRvItemClickListener() {@Overridepublic void onItemClick(View view, int i) {//條目點擊事件}});

ps:在Kotlin的加持下,適配器(單類型條目)可以寫成這樣:

//父類的適配器,有上拉加載的View abstract class BaseLtAdapterOneType<T>(val context: Context, val list: ArrayList<T>?, val itemLayoutId: Int) : LtAdapter(context) {abstract fun setData(v: View, b: T, i: Int)override fun onLtBindViewHolder(p0: RecyclerView.ViewHolder?, p1: Int) {setData((p0 as BaseLtViewHolder).itemView, list!![p1], p1)}override fun getLtItemCount(): Int = list?.sizeoverride fun onLtCreateViewHolder(p0: ViewGroup?, p1: Int): RecyclerView.ViewHolder = BaseLtViewHolder(LayoutInflater.from(p0?.context).inflate(itemLayoutId, p0, false)!!)} class BaseLtViewHolder(view: View) : RecyclerView.ViewHolder(view) //使用 class MAdapter(context: Context, list: ArrayList<InfoBean>?) : BaseLtAdapterOneType<InfoBean>(context, list, item_layout的id) {override fun setData(v: View, b: InfoBean, i: Int) {v.tvTitle.text=b.title//直接使用item的view內的id,然后使用bean類的屬性賦值,i為position(為了簡單寫,所以都用了單個字母的簡寫)} }

更多方法

  • rv.setNoItemText():若沒有條目則展示的文字
    xml中:app:noItemText=“暫無數據”

  • 設置沒有條目時展示的view:ltrv.setNoItemView(view);(會自動設置居中)
    xml中:app:noItemView="@drawable/ic_launcher"

  • 可以最多添加100個頭部的布局:適配器.addHeadView(view) 或者 適配 器.addHeadView(view,位置索引);
    刪除是適配器.removeHeadView(view) 或者適配器.removeHeadView(位置索引);(注意:如果這些方法是在setAdapter()方法之后調用的,記得調用ltrv.notifyDataSetChanged();)

  • 也可以最多添加100個底部布局:適配器.addTailView();同理也可以刪除.(其實是可以做到 無限制的,但感覺100個就夠用了,而且注意不要返回12345500到12345800之間的type, 不然會有沖突)

  • 若想監聽沒有條目了也可以單獨設置沒有條目時的監聽:適配器.addOnNoItemListener();

  • 如果使用默認的上拉布局,則new適配器時使用上下文的構造方法;
    如果使用自定義的上拉布局,則new適配器時傳入一個View對象,(**注意:**加載中的view的id必須為ll1,沒有更多數據的view的id必須為ll2,而且沒有更多數據的視圖默認設置為隱藏的)

  • 獲取下拉刷新的控件:

SwipeRefreshLayout srl=ltrv.getSwipeRefreshLayout();
  • 設置下拉刷新的顏色:
spl.setColorSchemeResources(Color 對象,Color 對象,…);
  • 設置背景顏色
spl.setProgressBackgroundColor(Color 對象);
  • 獲取內部的RecyclerView控件:ltrv.getRecyclerView();
  • 設置默認分割線:rv.addItemDecoration_line()或者rv.addItemDecoration_drawable()
    xml:app:dividerHeight=“1px” 設置高度,默認顏色
    app:dividerColor=“000000” 設置分割線顏色
    app:dividerDrawable="@drawable/ic_launcher" 設置圖片為分割線
  • drawable文件夾里放lt_loading.jpg或.png可以替換掉上拉的進度條圖片
  • layout文件夾里放lt_up_loading.xml文件可以替換掉上拉的整體布局,不過要注意刷新中的ViewGroupId需要是ll1,刷新成功的ViewGroupId需要時ll2

提交BUG請留言或發郵箱(lt.dygzs@qq.com),手動滑稽

總結

以上是生活随笔為你收集整理的LtRecyclerView:自带上拉下拉,能增加头条目和尾条目的RecyclerView的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。