Recycleview的上拉刷新与下拉加载
来源:互联网 发布:php exec 返回127 编辑:程序博客网 时间:2024/05/17 02:34
public class otherActvity extends AppCompatActivity { private RecyclerView mRecycle; private SwipeRefreshLayout mSw; private Handler handler =new Handler(); private Mrecycleviewadpter mrecycleviewadpter; private LinearLayoutManager linearLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_other_actvity); initView(); getdata(); } /* 网络请求 */ private void getdata() { okhttp ok = new okhttp(); String str = "http://120.27.23.105/product/getCatagory"; ok.Call(str, null, bean.class, new NetDataCallBack() { @Override public void callback(Object o) { bean b = (bean) o; List<bean.DataBean> data = b.getData(); Log.e("123",data.size()+""); recyc(data); } @Override public void error(String s, int code) { } }); } private void recyc(List<bean.DataBean> data) { mrecycleviewadpter = new Mrecycleviewadpter(otherActvity.this, data); mRecycle.setAdapter(mrecycleviewadpter); } private void initView() { mRecycle = (RecyclerView) findViewById(R.id.recycle); mSw = (SwipeRefreshLayout) findViewById(R.id.sw); linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); mRecycle.setLayoutManager(linearLayoutManager); /* 上拉刷新 */ mSw.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { handler.postDelayed(new Runnable() { @Override public void run() { List<bean.DataBean> newDatas = new ArrayList<bean.DataBean>(); for (int i = 0; i <5 ; i++) { bean.DataBean bb = new bean.DataBean(); bb.setName("这是我刷新的"+i); newDatas.add(bb); } mrecycleviewadpter.additem(newDatas); mSw.setRefreshing(false); Toast.makeText(otherActvity.this, "更新了五条数据...", Toast.LENGTH_SHORT).show(); } },5000); } }); /* 下拉加载 */ mRecycle.setOnScrollListener(new RecyclerView.OnScrollListener() { private int lastVisibleItemPosition; @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); if (newState == RecyclerView.SCROLL_STATE_IDLE && lastVisibleItemPosition+1== mrecycleviewadpter.getItemCount()){ handler.postDelayed(new Runnable() { @Override public void run() { List<bean.DataBean> newDatas = new ArrayList<bean.DataBean>(); for (int i = 0; i <5 ; i++) { bean.DataBean bb = new bean.DataBean(); bb.setName("这是我添加的"+i); newDatas.add(bb); } mrecycleviewadpter.addMoreItem(newDatas); } },5000); } } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); lastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition(); } }); }}
接下来 看下适配器
public class Mrecycleviewadpter extends RecyclerView.Adapter<Mrecycleviewadpter.viewhoder> { private Context context; List<bean.DataBean> data; public Mrecycleviewadpter(Context context, List<bean.DataBean> data) { this.context = context; this.data = data; } @Override public viewhoder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.reecycle,null); viewhoder vh = new viewhoder(view); return vh; } @Override public void onBindViewHolder(viewhoder holder, int position) { holder.textView.setText(data.get(position).getName()); } @Override public int getItemCount() { return data.size(); } class viewhoder extends RecyclerView.ViewHolder{ TextView textView; public viewhoder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.name); } } public void additem (List<bean.DataBean> newdatda){ newdatda.addAll(data); data.removeAll(data); data.addAll(newdatda); notifyDataSetChanged(); } public void addMoreItem(List<bean.DataBean> newDatas) { data.addAll(newDatas); notifyDataSetChanged(); }}
阅读全文
0 0
- Recycleview的上拉刷新与下拉加载
- RecycleView上拉加载和下拉刷新
- RecycleView下拉刷新上拉加载
- recycleView下拉刷新上拉加载
- RecycleView上拉刷新下拉加载
- 自定义下拉刷新和上拉加载的recycleview
- 【实训】自定义上拉加载下拉刷新的RecycleView
- Recycleview下拉刷新,上拉加载的思路
- 下拉刷新 上拉加载的 ListView RecycleView ScorllView
- RecycleView 上拉加载下拉刷新 分页加载
- 使用SwipeRefreshLayout实现recycleview下拉刷新上拉加载
- RecycleView上拉加载和下拉刷新二
- SwipeRefreshLayout +RecycleView实现上拉加载更多和下拉刷新
- pullloadmorerecyclerview实现recycleview上拉加载,下拉刷新
- SwipeRefreshLayout+RecycleView实现下拉刷新上拉加载
- 下拉刷新上拉加载RecycleView效果出众
- RecycleView添加下拉刷新、上拉加载更多
- RecycleView 布局布局管理器 上拉加载 下拉刷新
- 1027. Colors in Mars (20)
- vector iterator not incrementable
- 阳志平:阶级跃迁背后的残酷真相,你知道吗?
- js中的event.preventDefault()和event.stopPropagation()用法及兼容
- 软件测试分类与分级
- Recycleview的上拉刷新与下拉加载
- ES6-环境部署
- Akka(30): Http:High-Level-Api,Routing DSL
- python中的operator.itemgetter函数 operator.itemgetter函数
- Android开发——ListView的复用机制源码解析
- [Python]网络爬虫(一):抓取网页的含义和URL基本构成
- CentOS 6.5安装Erlang/OTP 19.0
- AIX系统rootvg硬盘更换场景汇总
- IntelliJ Idea 常用快捷键列表