RecycleView刷新加载
来源:互联网 发布:南方周易软件安卓版 编辑:程序博客网 时间:2024/06/01 09:06
1.添加加依赖:
compile ‘com.wuxiaolong.pullloadmorerecyclerview:library:1.0.4’
2.写出布局控件
<?xml version="1.0" encoding="utf-8"?><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"> <com.wuxiaolong.pullloadmorerecyclerview.PullLoadMoreRecyclerView android:id="@+id/pullLoadMoreRecyclerView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10dp" /> <Button android:id="@+id/but" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="回到顶部" android:layout_alignBottom="@+id/pullLoadMoreRecyclerView" android:layout_alignRight="@+id/pullLoadMoreRecyclerView" android:layout_alignEnd="@+id/pullLoadMoreRecyclerView" /></RelativeLayout>
3.给自定义的控件添加适配器
import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import com.bwie.text.R;import java.util.List;/** * Created by Love_you on 2017/9/19 0019. */public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> { private Context context; private List<String> list; public RecyclerViewAdapter(Context context, List<String> list) { this.context = context; this.list = list; } //加载视图 @Override public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycleview_item, null); ViewHolder viewHolder=new ViewHolder(view); return viewHolder; } //绑定数据 @Override public void onBindViewHolder(RecyclerViewAdapter.ViewHolder holder, int position) { holder.textView.setText(list.get(position)); } //数据的条目 @Override public int getItemCount() { return list.size(); } //获取布局控件 public class ViewHolder extends RecyclerView.ViewHolder { private TextView textView; public ViewHolder(View itemView) { super(itemView); textView = (TextView) itemView.findViewById(R.id.textview); } }}
4.在Activity中获取控件并添加适配器的样式和刷新样式
import android.os.Bundle;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.Toast;import com.bwie.text.R;import com.bwie.text.adapter.RecyclerViewAdapter;import com.wuxiaolong.pullloadmorerecyclerview.PullLoadMoreRecyclerView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements PullLoadMoreRecyclerView.PullLoadMoreListener { private PullLoadMoreRecyclerView pullLoadMoreRecyclerView; private List<String> list=new ArrayList<>(); private RecyclerViewAdapter recyclerViewAdapter; private int con=20; private Button but; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pullLoadMoreRecyclerView = (PullLoadMoreRecyclerView) findViewById(R.id.pullLoadMoreRecyclerView); but = (Button) findViewById(R.id.but); but.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pullLoadMoreRecyclerView.scrollToTop(); } }); //设置网格列数 pullLoadMoreRecyclerView.setGridLayout(1); //设置上拉加载展示的字 pullLoadMoreRecyclerView.setFooterViewText("loading"); //设置瀑布流的列数 //pullLoadMoreRecyclerView.setStaggeredGridLayout(2); getData(); recyclerViewAdapter = new RecyclerViewAdapter(MainActivity.this,list); //给布局添加适配器 pullLoadMoreRecyclerView.setAdapter(recyclerViewAdapter); //添加点击事件 pullLoadMoreRecyclerView.setOnPullLoadMoreListener(this); } private void getData1() { new Handler().postDelayed(new Runnable() { @Override public void run() { //停止刷新 pullLoadMoreRecyclerView.setPullLoadMoreCompleted(); } }, 1000); } private void getData() { for (int i = 0; i < con; i++) { list.add("条目"+i); } } //刷新 @Override public void onRefresh() { list.clear(); getData(); recyclerViewAdapter.notifyDataSetChanged(); getData1(); Toast.makeText(MainActivity.this, "刷新成功", Toast.LENGTH_SHORT).show(); } //加载 @Override public void onLoadMore() { list.clear(); con=con+10; getData(); recyclerViewAdapter.notifyDataSetChanged(); getData1(); Toast.makeText(MainActivity.this, "加载成功", Toast.LENGTH_SHORT).show(); }}
在此这个自定义控件中必须设置刷新和加载的方法否则会出现到顶部和底部处出现卡定状态不能继续滑动的Bug
这些是设置线性自定义控件的方法
设置线性布局
pullLoadMoreRecyclerView = (PullLoadMoreRecyclerView) view.findViewById(R.id.pullLoadMoreRecyclerView);
pullLoadMoreRecyclerView.setLinearLayout();
刷新结束
pullLoadMoreRecyclerView .setPullLoadMoreCompleted();
不需要下拉刷新
pullLoadMoreRecyclerView .setPullRefreshEnable(false);
不需要上拉刷新
pullLoadMoreRecyclerView .setPushRefreshEnable(false);
设置上拉刷新文字
pullLoadMoreRecyclerView.setFooterViewText(“loading”);
设置下拉刷新颜色
pullLoadMoreRecyclerView.setColorSchemeResources(android.R.color.holo_red_dark,android.R.color.holo_blue_dark);
快速Top
pullLoadMoreRecyclerView.scrollToTop();
在Activity中我们可以给布局添加布局优化
例: @Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if(view==null){
view = inflater.inflate(R.layout.fragment01,null);
}
ViewGroup group= (ViewGroup) view.getParent();
if(group!=null){
group.removeView(view);
}
pullLoadMoreRecyclerView = (PullLoadMoreRecyclerView) view.findViewById(R.id.pullLoadMoreRecyclerView);
pullLoadMoreRecyclerView.setOnPullLoadMoreListener(this);
return view;
}
解析json时候原生解析刷新加载处理
if(count==1){ jsonArray1 = new JSONArray(); } for (int i = 0; i < jsonArray.length(); i++) { jsonArray1.put(jsonArray.get(i)); }
- RecycleView刷新加载
- RecycleView上拉加载和下拉刷新
- RecycleView的上啦加载下拉刷新
- RecycleView下拉刷新上拉加载
- RecycleView+SwipeToLoadLayout+Fresco的自定义刷新加载
- recycleView下拉刷新上拉加载
- RecycleView上拉刷新下拉加载
- RecycleView 上拉加载下拉刷新 分页加载
- recycleview 刷新
- 自定义下拉刷新和上拉加载的recycleview
- RecycleView从显示到下拉刷新和加载更多
- 轻松实现RecycleView的下拉刷新、加载更多
- PullToReFresh 实现 RecycleView 横向滑动的刷新和加载更多
- 使用SwipeRefreshLayout实现recycleview下拉刷新上拉加载
- RecycleView上拉加载和下拉刷新二
- Android之RecycleView下拉刷新上滑加载更多
- 【实训】自定义上拉加载下拉刷新的RecycleView
- 下拉刷新与加载,不影响listview或者recycleview本身
- spark的几个示例
- java8 不使用循环
- 20170920--navicat测试
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
- Python函数参数默认值的陷阱和原理深究
- RecycleView刷新加载
- 初识410c
- 京东登录
- 一、 深入理解act生命周期&启动模式
- Exception 异常 例子
- SSM线上项目解析和quartz定时器及缓存Ehcache(实体类指定sqlmapper.xml方式)
- 欢迎使用CSDN-markdown编辑器
- angular增删查改
- 生活小记13