SwipeRefreshLayout(Google官方下拉刷新组件)

来源:互联网 发布:mac怎么重置网络设置 编辑:程序博客网 时间:2024/04/28 20:01

官方给出的下拉刷新控件实现的效果还是很简单大方的,而且用起来也特别简单。
SwipeRefreshLayout是v4包下的,全名是android.support.v4.widget.SwipeRefreshLayout
下拉刷新要实现的接口:SwipeRefreshLayout.OnRefreshListener
重要的方法:
setRefreshing(boolean): 显示或隐藏刷新进度条
setColorSchemeResources():设置小圆圈变化的颜色
这里写图片描述

xml的写法也是很简单的

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <android.support.v4.widget.SwipeRefreshLayout        android:id="@+id/my_SwipeRefresh"        android:layout_width="match_parent"        android:layout_height="match_parent">        <ListView            android:id="@+id/my_listView"            android:layout_width="match_parent"            android:layout_height="match_parent"></ListView>    </android.support.v4.widget.SwipeRefreshLayout></RelativeLayout>

其中MainActivity .java 中的代码如下:

package com.example.swiperefreshlayout;import android.os.Handler;import android.support.v4.widget.SwipeRefreshLayout;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {    private SwipeRefreshLayout swipeRefreshLayout;    private ListView listView;    private List<String> list;    private ArrayAdapter<String> adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();        //给ListView设置适配器        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, initData());        listView.setAdapter(adapter);        //设置监听器并重写了onRefresh方法        swipeRefreshLayout.setOnRefreshListener(this);        //设置小圆圈的颜色,最多是四种颜色        swipeRefreshLayout.setColorSchemeResources(R.color.color1, R.color.color2);    }    //初始化swipeRefreshLayout和listView    private void init() {        swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.my_SwipeRefresh);        listView = (ListView) findViewById(R.id.my_listView);    }    @Override    public void onRefresh() {        //设置3秒之后停止        new Handler().postDelayed(new Runnable() {            @Override            public void run() {                swipeRefreshLayout.setRefreshing(false);            }        }, 3000);    }    //初始化ListView的数据    private List<String> initData() {        list = new ArrayList<>();        for (int i = 0; i < 30; i++) {            list.add("listView" + i);        }        return list;    }}
0 0