利用Swiperefreshlayout实现下拉刷新功能的技术探讨


在常见的APP中通常有着下拉页面从而达到刷新页面的功能,这种看似简单的功能有着花样繁多的实现方式。而利用Swiperefreshlayout实现下拉刷新功能则是其中比较简明扼要的一种。

一般来说,在竖直滑动时想要刷新页面可以用Swiperefreshlayout来实现。它通过监听界面的滑动来实现刷新。也可以通过一些方法来设置Swiperefreshlayout是否可以刷新。比如setrefreshing(true),就可以显示刷新动画;反之则取消。

在绘制该界面的layout的时候,需要在这个布局里包裹可以滑动的子控件,比如listview,且只能有一个。

基本代码实现如下:

Layout部分

 1 <android.support.v4.widget.SwipeRefreshLayout
 2       android:id="@+id/srl"
 3       android:layout_width="match_parent"
 4       android:layout_height="match_parent">
 5 
 6       <ListView
 7           android:id="@+id/lv"
 8           android:layout_width="match_parent"
 9           android:layout_height="match_parent"/>
10 
11 </android.support.v4.widget.SwipeRefreshLayout>
View Code

核心功能实现

 1 package com.example.xxx;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.os.Handler;
 6 import android.support.v4.widget.SwipeRefreshLayout;
 7 import android.widget.ArrayAdapter;
 8 import android.widget.ListView;
 9 
10 import java.util.ArrayList;
11 
12 public class SwipeActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener {
13 
14     private SwipeRefreshLayout mSwipeLayout;
15     private ListView mListView;
16     private ArrayList<String> list = new ArrayList<String>();
17     private ArrayAdapter<String> adapter;
18 
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_main);
22 
23         mListView = (ListView) findViewById(R.id.listview);
24         /**
25          * listview绑定adapter
26          */
27         adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData());
28         mListView.setAdapter(adapter);
29 
30         mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
31         //绑定刷新时间
32         mSwipeLayout.setOnRefreshListener(this);
33         //设置颜色
34         mSwipeLayout.setColorSchemeResources(android.R.color.holo_blue_bright,
35                 android.R.color.holo_green_light, android.R.color.holo_orange_light,
36                 android.R.color.holo_red_light);
37     }
38 
39     private ArrayList<String> getData() {
40         list.add("Hello world!");
41         return list;
42     }
43 
44     public void onRefresh() {
45         new Handler().postDelayed(new Runnable() {
46             @Override
47             public void run() {
48                 //停止刷新
49                 mSwipeLayout.setRefreshing(false);
50 
51             }
52         }, 3000);
53     }
54 }
View Code

综上所述,利用Swiperefreshlayout实现下拉刷新功能不失为一种比较好的方法,既方便了页面的设计架构,同时也给APP增添了出彩的功能。

优质内容筛选与推荐>>
1、Spring 注解学习
2、(十一):异常处理应用程序块——入门篇
3、POJ 3680 Intervals
4、番外篇:根据学习程度划分程序员的级别
5、[Algorithms] Longest Common Subsequence


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn