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();

}

});

}

}

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,628评论 25赞 708
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,995评论 2赞 45
  • 这是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api。而view...
    Ten_Minutes阅读 5,905评论 1赞 19
  • 始于志同道合-——我与社群的相遇 2016年7月19日,我被时事热闻“遇见”,从此春暖花开,面朝简书。 至今我都很...
    萧洛zzy阅读 1,039评论 33赞 23
  • 你有没有过这样的时刻?深夜里很想找个人说说话,翻遍了手机通讯录,却拨不出去一个号码。 你有没有过跟朋友聚会时,别人...
    沐璎阅读 1,238评论 7赞 17

友情链接更多精彩内容