zoukankan      html  css  js  c++  java
  • 利用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增添了出彩的功能。

  • 相关阅读:
    GIT使用入门
    源代码的下载和编译:
    搭建Android开发环境
    ndroid系统移植与驱动开发概述
    python 通过2个字典中的key比较 如果key一样2个字典中的v和vaule重新组成新的的字典
    Git 多分支开发合并
    Python清除字典中值为空的键值对
    01 Java基本数据类型、包装类、装箱拆箱、parseXxx()、String.valueOf()
    00 Java开发准备
    关于程序书写风格的一些漏见
  • 原文地址:https://www.cnblogs.com/tilmto/p/9384283.html
Copyright © 2011-2022 走看看