Android官方下拉刷新控件SwipeRefreshLayout

简介: Android官方下拉刷新控件SwipeRefreshLayout

SwipeRefreshLayout是Google提供的一个官方的下拉刷新控件,比传统的使用起来更简易。


效果图:

image.png


主要方法:


OnRefreshListener:刷新监听,下拉触发。

setRefreshing(true):设置刷新动画,取消传false。

setColorSchemeResources:设置刷新时动画的颜色。


1.布局文件

SwipeRefreshLayout是V4包下提供的,使用时需要把要刷新的控件包裹起来。
<android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipRefreshLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <ListView
            android:id="@+id/listview"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </ListView>
    </android.support.v4.widget.SwipeRefreshLayout>


2.Activity

package com.bestyc.swiperefreshlayout;
import java.util.ArrayList;
import java.util.List;
import com.bestyc.swiperefreshlayout.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity implements OnRefreshListener{
  private ListView mListView;
  private ArrayAdapter<String> adapter;
  private List<String> mData;
  private SwipeRefreshLayout mSwipeRefreshLayout;
  Handler handler = new Handler(){
  public void handleMessage(android.os.Message msg) {
    //关闭刷新
    mSwipeRefreshLayout.setRefreshing(false);
    mListView.setAdapter(adapter);
  };
  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  setContentView(R.layout.activity_main);
  mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipRefreshLayout);
  mSwipeRefreshLayout.setOnRefreshListener(this);
  //设置刷新时的颜色
  mSwipeRefreshLayout.setColorSchemeResources(
    android.R.color.holo_blue_bright,
    android.R.color.holo_green_light,
    android.R.color.holo_orange_light);
  mListView=(ListView) findViewById(R.id.listview);
  mData = new ArrayList<String>();
  for (int i=0;i<=10;i++) {
    mData.add("加载的数据"+i);
  }
  adapter = new ArrayAdapter<String>(this, R.layout.item, R.id.text,mData);
  }
  @Override
  public void onRefresh() {//更新数据
  handler.sendEmptyMessageDelayed(1, 3000);
  }
}

目录
相关文章
|
22天前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
16 0
|
2月前
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
38 3
|
3月前
|
前端开发 Android开发 开发者
安卓开发中的自定义视图:构建你的第一个控件
【8月更文挑战第26天】在安卓开发的浩瀚海洋中,自定义视图是一块充满魔力的乐土。它不仅是开发者展示创造力的舞台,更是实现独特用户体验的关键。本文将带你步入自定义视图的世界,从基础概念到实战应用,一步步教你如何打造自己的第一个控件。无论你是初学者还是有经验的开发者,这篇文章都将为你的开发之旅增添新的风景。
|
4月前
|
存储 数据库 Android开发
🔥Android Jetpack全解析!拥抱Google官方库,让你的开发之旅更加顺畅无阻!🚀
【7月更文挑战第28天】在Android开发中追求高效稳定的路径?Android Jetpack作为Google官方库集合,是你的理想选择。它包含多个独立又协同工作的库,覆盖UI到安全性等多个领域,旨在减少样板代码,提高开发效率与应用质量。Jetpack核心组件如LiveData、ViewModel、Room等简化了数据绑定、状态保存及数据库操作。引入Jetpack只需在`build.gradle`中添加依赖。例如,使用Room进行数据库操作变得异常简单,从定义实体到实现CRUD操作,一切尽在掌握之中。拥抱Jetpack,提升开发效率,构建高质量应用!
65 4
|
4月前
|
XML 数据格式
Android-自定义三角形评分控件
Android-自定义三角形评分控件
38 0
|
4月前
|
Android开发
Android自定义之高仿淘宝下拉刷新
Android自定义之高仿淘宝下拉刷新
64 0
|
5月前
|
XML Android开发 数据格式
Android基础控件介绍
Android基础控件介绍
|
5月前
|
Android开发
Android 自定义View 测量控件宽高、自定义viewgroup测量
Android 自定义View 测量控件宽高、自定义viewgroup测量
60 0