1,实现效果

  • SwipeRefreshLayout+RecyclerView 实现下拉刷新

 

2,实现逻辑

【1】添加依赖

compile 'com.android.support:cardview-v7:23.2.0'compile 'com.android.support:recyclerview-v7:23.2.0'compile 'com.android.support:appcompat-v7:23.4.0'butterknife注入

 

【1】创建布局

  • SwipeRefreshLayout 包裹RecyclerView

<?xml version="1.0" encoding="utf-8"?>                        

 

 

【2】获取控件

  • 获取控件,设置布局管理者 ,设置Adapter

   rv.setLayoutManager(new LinearLayoutManager(this));        adapter = new MyAdapter();        rv.setAdapter(adapter);

【3】设置RecyclerView的Adapter

  • itme布局

 

<?xml version="1.0" encoding="utf-8"?>                

设置adapter

  •  
import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.TextView;import java.util.ArrayList;import java.util.List;import butterknife.BindView;import butterknife.ButterKnife;/*** Created by Administrator on 2016/11/30.*///是什么?是一堆  get方法 。由rv,lv,gv viewpager调用// RecyclerView.Adapter封装了 getView优化//条目的高度由什么决定 ?由内容的高度public class MyAdapter extends RecyclerView.Adapter {    //1.7 泛型自动推断    private List mList = new ArrayList<>();    public MyAdapter() {        for (int i = 0; i < 30; i++) {            mList.add("一碗牛肉面" + i);        }    }    //条目数量    @Override    public int getItemCount() {        return mList.size();    }    //RecyclerView.ViewHolder是缓存条目控件    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {//        View itemView=View.inflate(parent.getContext(),itemId,null);        //1.条目布局        //2.RecyclerView  传入给item参考宽度        //3.是否把打气布局添加到父控件 true添加,报错 二次添加  false,不添加 仅参考宽度        View itemView= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_cardview,parent,false);        MyViewHolder myViewHolder=new MyViewHolder(itemView);        return myViewHolder;    }    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {        MyViewHolder hd= (MyViewHolder) holder;        //数据        String item = mList.get(position);        hd.text.setText(item);        //字段    }    public void clear() {        mList.clear();    }    public void addAll(List list) {        mList.addAll(list);    }    static class MyViewHolder extends RecyclerView.ViewHolder{        @BindView(R.id.img)        ImageView img;        @BindView(R.id.text)        TextView text;        @BindView(R.id.activity_main)        RelativeLayout activityMain;        public MyViewHolder(View itemView) {            super(itemView);            ButterKnife.bind(this, itemView);        }    }}【4】处理业务逻辑SwipeRefreshLayout设置进度圈颜色SwipeRefreshLayout设置下拉刷新后松开手的业务逻辑refreshlayout.setColorSchemeColors(R.color.colorPrimary);        SwipeRefreshLayout.OnRefreshListener listener=new SwipeRefreshLayout.OnRefreshListener() {            @Override            public void onRefresh() {                //下拉刷新在项目中一般是重新从网络获取第一页数据(清空再添加)                getFirstPage();            }        };        refreshlayout.setOnRefreshListener(listener);松开重新加载数据    public void getFirstPage() {        new Handler().postDelayed(new Runnable() {            @Override            public void run() {                List list = new ArrayList<>();                for (int i = 0; i < 20; i++) {                    list.add("下拉 出来一碗牛肉面"+i+" "+new Date().toLocaleString());                }                adapter.clear();                adapter.addAll(list);                adapter.notifyDataSetChanged();                refreshlayout.setRefreshing(false);//关闭刷新            }        },3000);    }

 

更多相关文章

  1. Android纯代码写布局
  2. 控件:拖动条 --- SeekBar(事件处理)
  3. android 最简单的自定义控件 自定义view
  4. 【Android 性能优化】布局渲染优化 ( GPU 过度绘制优化总结 | CP
  5. 【Android 开发】:UI控件之 ImageView 实现适屏和裁剪图片的功能
  6. Pro Android 4 第六章 构建用户界面以及使用控件(一)
  7. Android 优化布局层次结构
  8. Android 自定义控件的简单实现
  9. 谈谈android 布局 的优化

随机推荐

  1. Android常用控件一之文本控件
  2. Android工具箱之Activity生命周期
  3. android xml的属性
  4. android文字阴影效果
  5. Android(安卓)Studio 解决Fetching andro
  6. android线性布局和相对布局的总结
  7. 用Eclipse开发Android应用程序(3): 开发
  8. Android跨进程通信IPC之4——AndroidIPC
  9. Android(安卓)Studio初体验
  10. Android:android:listSelector="#00000000