Google下拉刷新控件SwipeRefreshLayout
来源:互联网 发布:android 开启网络权限 编辑:程序博客网 时间:2024/04/29 06:57
SwipeRefrshLayout是Google官方更新的一个Widget,可以实现下拉刷新的效果。通过源码我们可以知道SwipeRefreshLayout继承了ViewGroup。
SwipRefreshLayout中存在一个接口,通过此接口我们可以监听滑动手势,其实使用此组件最重要的步骤就是实现此接口的onRefresh方法,在此方法中实现数据的更新操作。
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this,"刷新完成!",Toast.LENGTH_SHORT).show(); swipeRefreshLayout.setRefreshing(false); } },2000); } });
除了OnRefreshListener接口外,SwipRefreshLayout中还有一些其他重要的方法,具体如下:
1、setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener):设置手势滑动监听器。 2、setProgressBackgroundColor(int colorRes):设置进度圈的背景色。 3、setColorSchemeResources(int… colorResIds):设置进度动画的颜色。 4、setRefreshing(Boolean refreshing):设置组件的刷洗状态。 5、setSize(int size):设置进度圈的大小,只有两个值:DEFAULT、LARGE
简单的使用:
布局 :
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="so.wih.android.mydownrefresh.MainActivity"> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/id_swipe_ly" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/rv_msg" android:layout_width="match_parent" android:layout_height="match_parent"/> </android.support.v4.widget.SwipeRefreshLayout></RelativeLayout>
代码:
public class MainActivity extends AppCompatActivity { private SwipeRefreshLayout swipeRefreshLayout; private static final int REFRESH_COMPLETE = 110; private Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { switch (msg.what) { case REFRESH_COMPLETE: i++ ; data.add("你好 "+i); myAdapter.notifyDataSetChanged(); swipeRefreshLayout.setRefreshing(false); break; } } }; private ListView rvMsg; private List<String> data = new ArrayList<>(); private int i = 0 ; private MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.id_swipe_ly); rvMsg = (ListView) findViewById(R.id.rv_msg); swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { mHandler.sendEmptyMessageDelayed(REFRESH_COMPLETE, 2000); } }); for (int j = 1; j < 7 ; j++) { data.add("hello"+j); } myAdapter = new MyAdapter(); rvMsg.setAdapter(myAdapter); } private class MyAdapter extends BaseAdapter{ @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView = new TextView(MainActivity.this); textView.setText(data.get(position)); return textView; } }}
效果:
0 0
- Google 下拉刷新控件SwipeRefreshLayout
- Google下拉刷新控件SwipeRefreshLayout
- Google support4 下拉刷新控件 SwipeRefreshLayout
- 学习google最新下拉刷新控件SwipeRefreshLayout
- google官方的下拉刷新控件SwipeRefreshLayout
- Google原生下拉刷新控件 SwipeRefreshLayout
- 下拉刷新控件SwipeRefreshLayout
- SwipeRefreshLayout下拉刷新控件
- SwipeRefreshLayout-下拉刷新控件
- 下拉刷新控件---SwipeRefreshLayout
- 下拉刷新控件SwipeRefreshLayout
- Google官方版下拉刷新控件SwipeRefreshLayout解析
- Android 下拉刷新控件 SwipeRefreshLayout
- Android 下拉刷新控件SwipeRefreshLayout
- 新下拉刷新控件:SwipeRefreshLayout
- Android 下拉刷新控件SwipeRefreshLayout
- android 控件 下拉刷新 SwipeRefreshLayout
- Android 下拉刷新控件SwipeRefreshLayout
- TCP与UDP的区别、ARP协议的作用、路由器与交换机的区别
- 解决跨域的代码
- 关于电脑未联网状态下,navicat for mysql 连接数据库不成功的解决办法
- 数据结构——线性表顺序表示和实现
- HDU1496:Equations(二分)
- Google下拉刷新控件SwipeRefreshLayout
- android使用okthtp
- saltstack实践案例
- ElasticSearch环境搭建
- PAT 1082
- 1019. General Palindromic Number (20)
- java自动生成数据库代码
- Android Studio 插件配置加载卡住/插件所在文件目录管理
- Java 继承接口同名函数问题