XRecyclerView实现下拉刷新、滚动到底部加载更多等功能

XRecyclerView实现下拉刷新、滚动到底部加载更多等功能,第1张

概述介绍:一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerView。使用方式和RecyclerView完全一致,不需要额外的layout,不需要写特殊的adater。加载效果内置了AVLoadingIndicatorView上的所有效

介绍:
一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerVIEw。使用方式和RecyclerVIEw完全一致,不需要额外的layout,不需要写特殊的adater。 加载效果内置了AVLoadingIndicatorVIEw上的所有效果,可以根据需要指定。

项目地址:https://github.com/jianghejie/XRecyclerView

效果:


使用:

xml

<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"xmlns:tools="http://schemas.androID.com/tools"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"tools:context=".MainActivity"><com.jcodecraeer.xrecyclervIEw.XRecyclerVIEwandroID:ID="@+ID/recyclervIEw"androID:layout_wIDth="fill_parent"androID:layout_height="fill_parent" /></relativeLayout>

2.MainActivity

package com.example.xrecyclervIEw; import androID.os.Bundle;import androID.os.Handler;import androID.support.v7.app.AppCompatActivity;import androID.support.v7.Widget.linearlayoutmanager;import androID.vIEw.LayoutInflater;import androID.vIEw.Menu;import androID.vIEw.MenuItem;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import com.jcodecraeer.xrecyclervIEw.Progressstyle;import com.jcodecraeer.xrecyclervIEw.XRecyclerVIEw;import java.util.ArrayList; public class MainActivity extends AppCompatActivity {private XRecyclerVIEw mRecyclerVIEw;private MyAdapter mAdapter;private ArrayList<String> ListData;private int refreshTime = 0;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentVIEw(R.layout.activity_main);mRecyclerVIEw = (XRecyclerVIEw)this.findVIEwByID(R.ID.recyclervIEw);linearlayoutmanager layoutManager = new linearlayoutmanager(this);layoutManager.setorIEntation(linearlayoutmanager.VERTICAL);mRecyclerVIEw.setLayoutManager(layoutManager);mRecyclerVIEw.setRefreshProgressstyle(Progressstyle.BallSpinFadeLoader);mRecyclerVIEw.setLaodingMoreProgressstyle(Progressstyle.Pacman);mRecyclerVIEw.setArrowImageVIEw(R.drawable.iconFont_downgrey);VIEw header = LayoutInflater.from(this).inflate(R.layout.recyclervIEw_header,(VIEwGroup)findVIEwByID(androID.R.ID.content),false);mRecyclerVIEw.addheaderVIEw(header);mRecyclerVIEw.setLoadingListener(new XRecyclerVIEw.LoadingListener() {@OverrIDepublic voID onRefresh() {refreshTime ++;new Handler().postDelayed(new Runnable(){public voID run() {ListData.clear();for(int i = 0; i < 15 ;i++){ListData.add("item" + i + "after " + refreshTime + " times of refresh");}mAdapter.notifyDataSetChanged();mRecyclerVIEw.refreshComplete();}},3000);   //refresh data here} @OverrIDepublic voID onLoadMore() {new Handler().postDelayed(new Runnable(){public voID run() {for(int i = 0; i < 15 ;i++){ListData.add("item" + (i + ListData.size()) );}mAdapter.notifyDataSetChanged();mRecyclerVIEw.loadMoreComplete();}},3000); }}); ListData = new ArrayList<String>();mAdapter = new MyAdapter(ListData);for(int i = 0; i < 15 ;i++){ListData.add("item" + i);}mRecyclerVIEw.setAdapter(mAdapter);}@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_main,menu);return true;} @OverrIDepublic boolean onoptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button,so long// as you specify a parent activity in AndroIDManifest.xml.int ID = item.getItemID();//noinspection SimplifiableIfStatementif (ID == R.ID.action_settings) {return true;} return super.onoptionsItemSelected(item);}  }

3. adapter

package com.example.xrecyclervIEw;import androID.support.v7.Widget.RecyclerVIEw;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.Widget.TextVIEw;import java.util.ArrayList;/*** Created by jianghejIE on 15/11/26.*/public class MyAdapter extends RecyclerVIEw.Adapter<MyAdapter.VIEwHolder> {public ArrayList<String> datas = null;public MyAdapter(ArrayList<String> datas) {this.datas = datas;}//创建新VIEw,被LayoutManager所调用@OverrIDepublic VIEwHolder onCreateVIEwHolder(VIEwGroup vIEwGroup,int vIEwType) {VIEw vIEw = LayoutInflater.from(vIEwGroup.getContext()).inflate(R.layout.item,vIEwGroup,false);VIEwHolder vh = new VIEwHolder(vIEw);return vh;}//将数据与界面进行绑定的 *** 作@OverrIDepublic voID onBindVIEwHolder(VIEwHolder vIEwHolder,int position) {vIEwHolder.mTextVIEw.setText(datas.get(position));}//获取数据的数量@OverrIDepublic int getItemCount() {return datas.size();}//自定义的VIEwHolder,持有每个Item的的所有界面元素public static class VIEwHolder extends RecyclerVIEw.VIEwHolder {public TextVIEw mTextVIEw;public VIEwHolder(VIEw vIEw){super(vIEw);mTextVIEw = (TextVIEw) vIEw.findVIEwByID(R.ID.text);}}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的XRecyclerView实现下拉刷新、滚动到底部加载更多等功能全部内容,希望文章能够帮你解决XRecyclerView实现下拉刷新、滚动到底部加载更多等功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1144965.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存