导入依赖

implementation 'androidx.swiperefreshlayout:swiperefreshlayout:latest.release'

 

主布局文件

SwipRefreshLayout嵌套ListView

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

ListView显示布局文件 就一个TextView

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

MainActivity

package com.dzqc.card;import androidx.appcompat.app.AppCompatActivity;import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import java.util.ArrayList;import java.util.List;import java.util.Random;public class MainActivity extends AppCompatActivity {    private SwipeRefreshLayout swip;    private ListView lv;    String[] fruits = {"香蕉", "苹果", "桔子", "西瓜", "橙子", "葡萄"};    List frutisLists = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        swip = findViewById(R.id.swip);        lv = findViewById(R.id.lv);        //三种颜色切换        swip.setColorSchemeResources(R.color.blue, R.color.red, R.color.black);        //让刷新停止        swip.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {            @Override            public void onRefresh() {                //获取数据  停止刷新                refreshFruits();            }        });      /*  //自动刷新        swip.measure(0,0);        swip.setRefreshing(true);*/    }    private void refreshFruits() {        new Thread() {            @Override            public void run() {                try {                    Thread.sleep(2000);                } catch (Exception e) {                    e.printStackTrace();                }                //更新UI                runOnUiThread(new Runnable() {                    @Override                    public void run() {                        initFrutis();                        //获取数据                        lv.setAdapter(new MyAdapter());                        //刷新消失                        swip.setRefreshing(false);                    }                });            }        }.start();    }    private void initFrutis() {        //加载数据        for (int i = 0; i < fruits.length; i++) {            Random random = new Random();            int index = random.nextInt(fruits.length);            Fruits f = new Fruits();            f.setName(fruits[index]);            frutisLists.add(f);        }    }    public class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return frutisLists.size();        }        @Override        public Object getItem(int i) {            return null;        }        @Override        public long getItemId(int i) {            return 0;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            View v;            if (view == null) {                v = View.inflate(getApplicationContext(), R.layout.item, null);            } else {                v = view;            }            TextView tv_c = v.findViewById(R.id.tv_c);            Fruits fruits = frutisLists.get(i);            tv_c.setText(fruits.getName());            return v;        }    }}

效果图

Android Studio 3.4.1 下拉刷新 SwipRefreshLayout_第1张图片

更多相关文章

  1. Android 获取剪切板第一条数据
  2. Android在程序中动态生成控件,动态布局
  3. Android 手机端与服务端POST数据交互类
  4. java后台接收android客户端通过http方式发送的数据
  5. android 相对布局例子代码
  6. Android实现动态切换横竖屏,保存横竖屏数据(用Preference存储)
  7. android添加联系人(直接添加到联系人数据库)

随机推荐

  1. Android获取所有安装APP信息的详细代码
  2. 2010.12.28——— android menu用法
  3. 【转】Android(安卓)kernel启动流程
  4. android 退出机制
  5. android字体闪烁动画(线程)
  6. android应用程序设置全屏
  7. Android(安卓)2.2 单点触摸支持的问题
  8. 安卓版本和Api Level
  9. Android(安卓)P WiFi自动连接评分机制
  10. Android(安卓)activity的生命周期