日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产成人综合在线观看 | 在线视频国产一区 | 亚洲综合一 | 免费啪视频在线观看 | 亚洲一区二区蜜桃 | 一级作爱视频 | 男女操操视频 | 国产区91 | 国产精品日韩 | 韩国美女视频在线观看18 | 成人网在线播放 | 亚洲免费一区视频 | 一区在线不卡 | 欧产日产国产精品98 | 色综合999| 成人午夜又粗又硬又大 | 国产免费网 | 中出中文字幕 | 亚洲欧洲一级 | 国产剧情自拍 | 韩漫动漫免费大全在线观看 | 碰在线视频 | 亚洲av色区一区二区三区 | 偷偷在线观看免费高清av | 中文字幕人妻一区二区三区 | 成年性生交大片免费看 | 日韩污污 | 91看片视频 | 欧美aⅴ在线 | 日本伊人影院 | 欧美人体一区二区 | 男生女生搞鸡视频 | 久久久久久亚洲精品中文字幕 | 老司机免费视频 | 日日弄天天弄美女bbbb | 日韩精品在线免费视频 | 在线观看91av| 在线视频久 | 久操影视| 日本一区成人 | 特级毛片www| 伊人成年综合网 | 国产高清一区在线观看 | 黄色91 | 欧美国产一区二区三区 | 深夜福利免费视频 | 精品国产乱码久久久久久郑州公司 | 久热精品视频在线播放 | 尤物视频免费在线观看 | 99视频+国产日韩欧美 | www.com欧美 | 欧美高清大白屁股ass18 | 男人的天堂亚洲 | 日韩精品电影一区二区三区 | 自拍偷拍18p | 亚洲欧美另类日韩 | 美女搡bbb又爽又猛又黄www | 免费在线观看一区二区 | 国产超碰人人爽人人做人人爱 | 久草免费在线观看 | 日韩成人免费观看 | 国产欧美日韩专区发布 | 日本www免费| 性猛交娇小69hd | 国产超碰av | 欧美一区二区大片 | 99久久精品免费看国产交换 | 亚洲性片| 国产精品中文在线 | 穿越异世荒淫h啪肉np文 | 欧美性猛交乱大交xxxx | 福利视频不卡 | 老司机深夜视频 | 2024国产精品视频 | 狠狠爱网站 | 成人伊人网 | 色视频免费在线观看 | 美女被娇喘视频 | 黄色小视频免费在线观看 | 亚洲作爱网| 老头吃奶性行交 | 爱豆国产剧免费观看大全剧集 | 天堂色网 | 中文在线а√天堂官网 | www久久久久久久 | 66av欧美| 久久午夜无码鲁丝片午夜精品 | 调教丰满的已婚少妇在线观看 | 亚洲一级av无码毛片精品 | 小视频国产 | 在线观看中出 | 麻豆精品久久久久久久99蜜桃 | 精彩毛片 | 狠狠干老司机 | 伊是香蕉大人久久 | 人体av | aaaaaa毛片| 在线视频一区二区三区 | 荫道bbwbbb高潮潮喷 |