利用SwipeRefreshLayout实现类似知乎客户端的一打开界面就自动刷新的效果
2017-12-01 17:42
411 查看
前言
最近在学习下拉刷新的过程中,遇到了一个需求:实现一个图书馆藏的首页推荐页,为了追求良好的用户体验,要求刚进入页面时就开始刷新,如下图:为了实现这个效果使用了SwipeRefreshLayout这个控件,接下来来说如何实现。
实现步骤
在布局文件中添加该控件<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/library_refresh" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView> </android.support.v4.widget.SwipeRefreshLayout>
在Activity中初始化这个控件
private void initSwipeRefresh() { swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.library_refresh); // 设置颜色属性的时候一定要注意是引用了资源文件还是直接设置16进制的颜色,因为都是int值容易搞混 // 设置下拉进度的背景颜色,默认就是白色的 swipeRefreshLayout.setProgressBackgroundColorSchemeResource(android.R.color.white); // 设置下拉进度的主题颜色 swipeRefreshLayout.setColorSchemeResources(R.color.colorAccent, R.color.colorPrimary, R.color.colorPrimaryDark); listener = new SwipeRefreshLayout.OnRefreshListener() { public void onRefresh() { //TODO //在这执行你的操作 } }; swipeRefreshLayout.setOnRefreshListener(listener); }
在activity的onCreate()方法中执行
swipeRefreshLayout.post(new Runnable() { @Override public void run() { swipeRefreshLayout.setRefreshing(true); } }); listener.onRefresh(); //这句话务必执行
通过以上的代码即可在进入首页时自动刷新了。
问题
那应该如何关闭这个刷新动过呢?在需要关闭的地方执行以下方法即可
swipeRefreshLayout.post(new Runnable() { @Override public void run() { swipeRefreshLayout.setRefreshing(false); } });
需要注意的地方
想要在界面一加载的时候出现更新效果,直接调用setRfreshing(true)是出不来效果的,务必需要在swipeRefreshLayout.setRefreshing(true);
后添上一句
listener.onRefresh();
相关文章推荐
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),...
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- [DevExpress]利用LookUpEdit实现类似自动提示效果
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),强烈建议不要再使用TabActivity
- 利用AutoIt(AU3)轻松实现MDT全自动刷新客户端
- Dom利用javascript实现模拟弹出对话框效果的代码,类似JQuery中的dialog!
- 图形化界面实现客户端自动更新程序
- 利用css的before和after属性,实现类似QQ对话框效果
- javascript观察者模式实现自动刷新效果
- Html页面自动刷新///客户端实现方式——不断发送请求
- 使用三层实现分页利用ajax实现无刷新的效果