1. package com.loaderman.swiperefreshdemo;
  2.  
  3. import android.os.Bundle;
  4. import android.os.Handler;
  5. import android.support.v4.widget.SwipeRefreshLayout;
  6. import android.support.v7.app.AppCompatActivity;
  7. import android.support.v7.widget.LinearLayoutManager;
  8. import android.support.v7.widget.RecyclerView;
  9. import android.util.Log;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. /**
  13. * design库中包含V7包 V7包中包含V4包
  14. */
  15. public class MainActivity extends AppCompatActivity {
  16.  
  17. private SwipeRefreshLayout swip_refresh;
  18. private RecyclerView recyclerView;
  19. private List<String> titleList;
  20. private MyAdapter adapter;
  21. private int page = 1;
  22. @Override
  23. protected void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25. setContentView(R.layout.activity_main);
  26. initView();
  27. initEvent();
  28. initData();
  29. }
  30. private void initData() {
  31. swip_refresh.post(new Runnable() {
  32. @Override
  33. public void run() {
  34. swip_refresh.setRefreshing(true);
  35. }
  36. });
  37. getData(1, "Load");
  38. }
  39. private void initEvent() {
  40. swip_refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
  41. @Override
  42. public void onRefresh() {
  43. Log.e("main", "refresh");
  44. //titleList.clear();
  45. getData(2, "Refresh");
  46. }
  47. });
  48. }
  49. private void initView() {
  50. swip_refresh = (SwipeRefreshLayout) findViewById(R.id.swip_refresh);
  51. recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
  52. recyclerView.setLayoutManager(new LinearLayoutManager(this));
  53. titleList = new ArrayList<>();
  54. adapter = new MyAdapter(titleList);
  55. recyclerView.setAdapter(adapter);
  56. //设置刷新时动画的颜色,可以设置4个
  57. swip_refresh.setColorSchemeResources(android.R.color.holo_blue_light, android.R.color.holo_red_light, android.R.color.holo_orange_light, android.R.color.holo_green_light);
  58. }
  59. private void getData(final int page, final String content) {
  60. new Handler().postDelayed(new Runnable() {
  61. @Override
  62. public void run() {
  63. int startPosition = 10 * (page - 1);
  64. int endPosition = 10 * page;
  65. for (int i = startPosition; i < endPosition; i++) {
  66. titleList.add(0,content + i);
  67. }
  68. adapter.notifyDataSetChanged();
  69. swip_refresh.setRefreshing(false);
  70. }
  71. }, 3000);
  72. }
  73. }
  1. package com.loaderman.swiperefreshdemo;
  2.  
  3. import android.support.v7.widget.RecyclerView;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.TextView;
  8.  
  9. import java.util.List;
  10.  
  11. public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
  12.  
  13. private List<String> list;
  14.  
  15. public MyAdapter(List<String> list) {
  16. this.list = list;
  17. }
  18.  
  19. @Override
  20. public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  21. View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.content_main, parent, false);
  22. return new MyViewHolder(view);
  23. }
  24.  
  25. @Override
  26. public void onBindViewHolder(MyViewHolder holder, int position) {
  27. holder.txt_item.setText(list.get(position));
  28. }
  29.  
  30. @Override
  31. public int getItemCount() {
  32. return list == null ? 0 : list.size();
  33. }
  34.  
  35. public static class MyViewHolder extends RecyclerView.ViewHolder {
  36. TextView txt_item;
  37.  
  38. public MyViewHolder(View itemView) {
  39. super(itemView);
  40. txt_item = (TextView) itemView.findViewById(R.id.txt_item);
  41. }
  42. }
  43. }

activity_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <android.support.v4.widget.SwipeRefreshLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/swip_refresh"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent">
  6. <android.support.v7.widget.RecyclerView
  7. android:id="@+id/recyclerView"
  8. android:layout_width="match_parent"
  9. android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>
  10. </android.support.v4.widget.SwipeRefreshLayout>

content_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <TextView xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/txt_item"
  4. android:layout_width="match_parent"
  5. android:layout_height="40dp"
  6. android:gravity="center"/>

效果图:

使用谷歌提供的SwipeRefreshLayout下拉控件进行下拉刷新的实现数据的刷新的更多相关文章

  1. 使用谷歌提供的SwipeRefreshLayout下拉控件,并自定义实现下拉加载的功能

    package com.loaderman.swiperefreshdemo; import android.os.Bundle; import android.os.Handler; import ...

  2. scrollview嵌套下拉控件嵌套recyclerview(不动第三方原基础自定义)

    相信会碰到很多类似的需求,一个列表控件,然后控件上方的一个头部需要自定义,这样就不好有时候也不能加在列表控件的头部了,那必须得嵌套一层scrollview了,没毛病,那么一般的列表控件都是有上拉下拉的 ...

  3. 支持各种控件上/下拉刷新的android-pulltorefresh

    android- pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新,如ListView.ViewPager.WevView. ExpandableListView.Grid ...

  4. DevExpress控件GridView挂下拉控件无法对上值

    下拉控件使用RepositoryItemLookUpEdit,加入如下事件进行处理. repositoryItemLookUpEdit1.CustomDisplayText += new DevExp ...

  5. 一不小心写了个bootstrap风格下拉控件 JqueryUI + bootstrap

    受够了EasyUI的封闭,Bootstrap虽然华丽但是功能太渣,闲着无聊写个下拉控件玩玩吧,不喜勿喷哈... 第一步:先设计下我的下拉控件的样子 1.既然是bootstrap风格的,我想应该是这样的 ...

  6. 基于bootstrap的multiple-select下拉控件使用

    multiple-select是一款优秀的下拉菜单控件,能够支持单选和多选. 详细参考文档: JS组件系列——两种bootstrap multiselect组件大比拼 multiple-select ...

  7. 下拉控件jQuery插件

    由于后端开发需要一个下拉控件,能输入,能选择,于是自己写了一个 ;(function($,window,document,undefined){ function Select(el,opt){ th ...

  8. 解决easyUI下拉控件无法触发onkeydown事件

    实现在combotree下拉控件中按Backspace键清除combotree选中的值 下面的代码无法获取到键盘事件 <input class="easyui-combotree&qu ...

  9. SDI在自定义的工具栏上添加下拉控件

    0.首先到自己的工具条上新建一个控件,并命名新ID 1.拷贝FlatComboBox.h和FlatComboBox.cpp到工程目录下 2.建立新类 class CTrackerToolBar : p ...

随机推荐

  1. Delphi MSComm控件的错误消息

  2. Delphi RS-232C标准

  3. 【转】tar命令详解

    原文:http://www.cnblogs.com/qq78292959/archive/2011/07/06/2099427.html tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压 ...

  4. IPC之namespace.c源码解读

    // SPDX-License-Identifier: GPL-2.0 /* * linux/ipc/namespace.c * Copyright (C) 2006 Pavel Emelyanov ...

  5. shell常用分隔符及管道的用法

    1.命令1;命令2;命令3;.... 代码顺序执行 2.&&连接两条命令:命令1&&命令2&&命令3... 短路执行 3.||连接两条命令:命令1||命 ...

  6. PAT Basic 1023 组个最小数 (20 分)

    给定数字 0-9 各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意 0 不能做首位).例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就 ...

  7. 2019ICPC南京网络赛A题 The beautiful values of the palace(三维偏序)

    2019ICPC南京网络赛A题 The beautiful values of the palace https://nanti.jisuanke.com/t/41298 Here is a squa ...

  8. 在配置tensorflow时踩的无数个坑

    在下午尝试配置tensorflow环境时,遇到了许多天坑,讲真的心态炸了好几次,特此写下这篇记录,希望能给看到朋友一点帮助. 先说一下这抓狂的一天的起因,比赛项目想用SVM进行一下数据分析,除了常规的 ...

  9. win10 sql server2012 连接navicat 无法使用

    修改 连接navicat时报如下错误,按照网上办法,各种删除navicat的客户端,行不通. 点击sqlserver管理器,提示评估期已过.有关如何升级的测试版软件的信息,请访问http://www. ...

  10. jquery之闭包

    闭包 常见形式是函数A里面定义一个函数B,并返回函数体的引用,很抽象是不是,具体代码如下: function wenwa() { ; function cj() { console.log(" ...