基于SwipeRefreshLayout的下拉刷新功能
来源:互联网 发布:未备案域名 微信 编辑:程序博客网 时间:2024/05/10 14:24
前言
下拉刷新已经成了每个app的标配,Google在API 19后开始自带下拉刷新的功能组件,名字叫SwipeRefreshLayout。使用这个组件,可以先阅读下DOC: SwipeRefreshLayout 。以前我们做下拉刷新都是选择用第三方的,比较好用的有如下几个:
第三方也有很多好用的开源组件。例如 SuperSwipeRefreshLayout,Android-PullToRefresh,android-Ultra-Pull-To-Refresh等。
步骤
setOnRefreshListener(OnRefreshListener): 设置刷新监听器
setRefreshing(boolean): 显示或隐藏刷新进度条
isRefreshing(): 检查是否处于刷新状态
setColorScheme(): 设置进度条的颜色,最多能设置四种
编写布局文件
在布局文件中增加下面的代码,请注意组件的命名空间
<!--下拉刷新--> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe_layout" android:layout_below="@+id/roll_view_pager" android:layout_width="match_parent" android:layout_height="wrap_content"> <!--刷新列表--> <ListView android:id="@+id/lvPlayers" android:layout_width="match_parent" android:layout_height="wrap_content"> </ListView> </android.support.v4.widget.SwipeRefreshLayout>
java代码
请注意看里面的注释。Activity里面的实现了SwipeRefreshLayout.OnRefreshListener接口,因此需要重写onRefresh回调事件。
package bingo.pushtorefresh;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.widget.SwipeRefreshLayout;import android.support.v7.app.AppCompatActivity;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener { private SwipeRefreshLayout layout; private ListView lvPlayers; private List<String> listData=new ArrayList<>(); private ArrayAdapter<String> adapter; private static final int REFRESH_COMPLETE=0x110; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setTitle("下拉刷新"); //设置数据源 setData(); //初始化ListView lvPlayers=(ListView)findViewById(R.id.lvPlayers); layout=(SwipeRefreshLayout)findViewById(R.id.swipe_layout); //设置监听器 layout.setOnRefreshListener(this); //设置颜色,最多4种颜色 layout.setColorSchemeResources( android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light); //设置列表适配器 adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listData); lvPlayers.setAdapter(adapter); } //模拟数据 private void setData(){ listData.add("姚泽鑫"); listData.add("冯佰诚"); listData.add("冯广标"); } //刷新回调事件 @Override public void onRefresh() { Toast.makeText(this, "下拉刷新", Toast.LENGTH_SHORT).show(); handler.sendEmptyMessageDelayed(REFRESH_COMPLETE,3000); } //用于更新UI Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case REFRESH_COMPLETE: listData.add("张三丰"); listData.add("谢霆锋"); //更新列表 adapter.notifyDataSetChanged(); //显示或者隐藏刷新进度条 layout.setRefreshing(false); break; } super.handleMessage(msg); } };}
效果
1 0
- 基于SwipeRefreshLayout的下拉刷新功能
- 不一样的下拉刷新-----SwipeRefreshLayout
- 不一样的下拉刷新-----SwipeRefreshLayout
- 官方的下拉刷新SwipeRefreshLayout
- 自定义的下拉刷新SwipeRefreshLayout
- 关闭SwipeRefreshLayout的下拉刷新
- SwipeRefreshLayout下拉刷新的使用
- 谷歌官方下拉刷新功能SwipeRefreshLayout
- google推出的SwipeRefreshLayout下拉刷新用法
- google推出的SwipeRefreshLayout下拉刷新用法
- google推出的SwipeRefreshLayout下拉刷新用法
- google推出的SwipeRefreshLayout下拉刷新用法
- Android SwipeRefreshLayout GMail的下拉刷新效果
- 下拉刷新SwipeRefreshLayout的扩展两个方向
- 官方下拉刷新控件SwipeRefreshLayout的使用
- SwipeRefreshLayout谷歌自己的下拉 刷新
- Android 下拉刷新控件SwipeRefreshLayout 的使用
- google推出的SwipeRefreshLayout下拉刷新用法
- 线性表(顺序表)
- 使用虚拟机从小白开始搭建Spark集群
- 求1000位随机数除7的余数(java)
- VMware安装ubuntu16.04切换至root时密码错误问题
- 如何让Fragment响应onBackPressed事件
- 基于SwipeRefreshLayout的下拉刷新功能
- 点阵字体显示系列之一:ASCII码字库的显示
- 查找二叉树中和为某一个值的路径
- 你知道Hello World程序的由来吗?
- linux的审计功能(audit)
- java中的Map集合
- 链表
- 进制的运算(笔记借鉴编程达人)
- 点阵字体显示系列之二:汉字显示