全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

介绍:

一个实现了下拉刷新,滚动到底部加载更多以及添加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.XRecyclerView
android: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;
@Override
protected 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() {
@Override
public 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
}
 
@Override
public 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);
}


@Override
public 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;
}
 
@Override
public 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 SimplifiableIfStatement

if (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所调用
@Override
public 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;
}
//将数据与界面进行绑定的操作
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
viewHolder.mTextView.setText(datas.get(position));
}
//获取数据的数量
@Override
public 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  # 下拉刷新  # 滚动加载  # Android中使用RecyclerView实现下拉刷新和上拉加载  # Android RecyclerView实现下拉刷新和上拉加载  # Android RecyclerView 上拉加载更多及下拉刷新功能的实现方法  # 详解Recyclerview item中有EditText使用刷新遇到的坑  # Android使用recyclerview打造真正的下拉刷新上拉加载效果  # android RecyclerView侧滑菜单  # 滑动删除  # 长按拖拽  # 下拉刷新上拉加载  # Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新  # Android RecyclerView的刷新分页的实现  # Android RecyclerView下拉刷新和上拉加载更多  # RecyclerView使用payload实现局部刷新  # 加载  # 不需要  # 自定义  # 不需  # 可以根据  # 绑定  # 大家多多  # 要写  # 实现了  # 内置了  # Menu  # MenuItem  # LayoutInflater  # view  # LinearLayoutManager  # ProgressStyle  # util  # ViewGroup 


相关文章: 浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  太原网站制作公司有哪些,网约车营运证查询官网?  在线教育网站制作平台,山西立德教育官网?  如何选择适合PHP云建站的开源框架?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  魔方云NAT建站如何实现端口转发?  c# 在ASP.NET Core中管理和取消后台任务  网站制作网站,深圳做网站哪家比较好?  如何挑选最适合建站的高性能VPS主机?  建站之星后台密码遗忘或太弱?如何重置与强化?  建站之星如何实现五合一智能建站与营销推广?  香港服务器如何优化才能显著提升网站加载速度?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  建站三合一如何选?哪家性价比更高?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何彻底删除建站之星生成的Banner?  宁波免费建站如何选择可靠模板与平台?  如何在宝塔面板中创建新站点?  宁波自助建站系统如何快速打造专业企业网站?  定制建站流程步骤详解:一站式方案设计与开发指南  如何基于PHP生成高效IDC网络公司建站源码?  建站之星伪静态规则如何设置?  表情包在线制作网站免费,表情包怎么弄?  网站企业制作流程,用什么语言做企业网站比较好?  ,网页ppt怎么弄成自己的ppt?  创业网站制作流程,创业网站可靠吗?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  青岛网站建设如何选择本地服务器?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  历史网站制作软件,华为如何找回被删除的网站?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何在景安服务器上快速搭建个人网站?  个人网站制作流程图片大全,个人网站如何注销?  制作宣传网站的软件,小红书可以宣传网站吗?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  西安专业网站制作公司有哪些,陕西省建行官方网站?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何用好域名打造高点击率的自主建站?  如何在云指建站中生成FTP站点?  黑客如何利用漏洞与弱口令入侵网站服务器?  利用JavaScript实现拖拽改变元素大小  建站主机选虚拟主机还是云服务器更好?  如何在阿里云完成域名注册与建站?  深入理解Android中的xmlns:tools属性  电商网站制作价格怎么算,网上拍卖流程以及规则?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。