专栏首页Linux技术资源分享Google官方下拉刷新PullToRefresh

Google官方下拉刷新PullToRefresh

网上关于下拉刷新的文章也不少,但是依赖的库文件太重了。恰好发现了官方的下拉刷新库,而且效果还是不错的:简洁美观,使用方便。

这是最基本的下拉刷新例子-可扩展

看图啦

Step-one:下拉刷新布局文件

<?xml version="1.0"encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent">

<android.support.v4.widget.SwipeRefreshLayout

android:id="@+id/swipeRefreshLayout"

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>

</RelativeLayout>


Step-two:java处理文件

packagecom.samego.alic.purgepulltorefresh;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.support.v4.widget.SwipeRefreshLayout;

importandroid.support.v7.app.AppCompatActivity;

importandroid.support.v7.widget.Toolbar;

importandroid.widget.ArrayAdapter;

importandroid.widget.ListView;

public classMainActivityextendsAppCompatActivity {

privateSwipeRefreshLayoutmSwipeLayout;

privateListViewlistView;

privateArrayAdapteradapter;

@Override

protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.content_main);

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

setSupportActionBar(toolbar);

//实例化刷新布局

mSwipeLayout= (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);

//listView主内容

listView= (ListView) findViewById(R.id.listView);

adapter=newArrayAdapter(this,android.R.layout.simple_list_item_1);

adapter.add("Alic-one");

adapter.add("Alic-two");

adapter.add("Alic-three");

listView.setAdapter(adapter);

//设置刷新时动画的颜色,可以设置4个

mSwipeLayout.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);

//handler用来更新UI的 注意需要定义自己的Handler类-防泄露

finalHandler handler =newHandler(){

@Override

public voidhandleMessage(Message msg) {

//TODO

adapter.add("Alic-Refresh");

super.handleMessage(msg);

//取消更新的动画

mSwipeLayout.setRefreshing(false);

}

};

//设置监听器

mSwipeLayout.setOnRefreshListener(newSwipeRefreshLayout.OnRefreshListener() {

@Override

//正在更新的时候执行什么代码

public voidonRefresh() {

newThread(newRunnable() {

@Override

public voidrun() {

//模拟在服务器获取数据等待一秒

try{

Thread.sleep(1000);

}catch(InterruptedException e) {

e.printStackTrace();

}

//发消息给handler更新UI

Message message =newMessage();

handler.sendMessage(message);

}

}).start();

}

});

}

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 图片自动轮播图

    AlicFeng
  • Android总结篇系列之Permission

    前言:权限是一种安全机制。Android权限主要用于限制应用程序内部某些具有限制性特性的功能使用以及应用程序之间的组件访问。对于用户来说,这无疑是一种对自身安全...

    AlicFeng
  • Linux之crontab定时任务

    AlicFeng
  • Android文件读写和使用SharedPreferences储存数据

    程序的终归目的还是操作数据来达到实现一些特定功能,在Android中,我们可以通过操作文件或者使用SharedPreferences还有数据库来保存一些数据。首...

    指点
  • 用 CoordinatorLayout 处理滚动

    Android 开发者
  • Android Fragment的静态注册和动态注册创建步骤

    1.创建一个StaticFragment.java文件继承Fragment类和一个static_fragment.xml文件完成fragment的布局。在Sta...

    砸漏
  • 仿网易新闻页面效果

    不扯闲话了,直接进入正题吧 frame_content.xml <?xml version="1.0" encoding="utf-8"?> <FrameLa...

    xiangzhihong
  • 选项卡TabHost

    1.布局 1 <TabHost xmlns:android="http://schemas.android.com/apk/res/android" 2 ...

    欢醉
  • 安卓开发_数据存储技术_内部存储

    听着music睡
  • 2-VVI-材料设计之TabLayout下标签

    张风捷特烈

扫码关注云+社区

领取腾讯云代金券