Android基础SwipeRefreshLayout的使用

SwipeRefreshLayout简介:

google官方推出的下拉刷新组件SwipeRefreshLayout,被放到support v4中。
其实通过文档我们可以知道SwipeRefreshLayout只不过是继承了ViewGroup。
查看文档,我们可以知道,在SwipRefreshLayout中存在一个接口,通过此接口我们可以监听滑动手势,其实使用此组件最重要的步骤就是实现此接口的onRefresh方法,在此方法中实现数据的更新操作。

查看源码:

android studio 查看源码,选择类,按住ctrl

public class SwipeRefreshLayout extends ViewGroup implements NestedScrollingParent,
        NestedScrollingChild {
        ```
        ```
        }

SwipeRefreshLayout里面需要注意的API:

1、setOnRefreshListener(OnRefreshListener listener)
设置下拉监听,当用户下拉的时候会去执行回调 2、setColorSchemeColors(int… colors)
(过期的方法)设置 进度条的颜色变化,最多可以设置4种颜色 2、setColorSchemeResources(int…
colorResIds):设置进度动画的颜色。 3、setProgressViewOffset(boolean scale, int
start, int end) 调整进度条距离屏幕顶部的距离 4、setRefreshing(boolean refreshing)
设置SwipeRefreshLayout当前是否处于刷新状态,一般是在请求数据的时候设置为true,在数据被加载到View中后,设置为false。
5、setSize(int size):设置进度圈的大小,只有两个值:DEFAULT、LARGE
6、setProgressBackgroundColor(int colorRes):设置进度圈的背景色。

使用步骤:

布局调用:

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

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:paddingTop="10dp"
            android:text="刷新"
            android:textSize="20sp"
            android:textStyle="bold" />
    </ScrollView>

</android.support.v4.widget.SwipeRefreshLayout>

Activity调用:

public class MainActivity extends AppCompatActivity {
    private TextView tv;
    private SwipeRefreshLayout swipeRefreshLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView)findViewById(R.id.textView1);
        swipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.swipe_container);
        //设置刷新时动画的颜色,可以设置4个
        swipeRefreshLayout.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);
        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

            @Override
            public void onRefresh() {
                tv.setText("正在刷新");
                // TODO Auto-generated method stub
                new Handler().postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        tv.setText("刷新完成");
                        swipeRefreshLayout.setRefreshing(false);
                    }
                }, 6000);
            }
        });
    }
}

测试:

这里写图片描述

看效果出来了,就是这样简单。

发布了85 篇原创文章 · 获赞 40 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/lw_zhaoritian/article/details/52612381