Android XListView 如何实现 自动下拉刷新
2015-10-16 14:36
656 查看
XListView是个挺不错的android上拉刷新,下拉加载更多的ListView。现在项目中实现了其上拉下拉功能。
现在有个新的需求,就是进入到页面中的时候,需要其自动下拉刷新,从而去获取相对应的数据。其实XListView中有一个方法
在Activity中,通过上诉代码可以实现自动下拉刷新的功能。但是同样的代码,放到FragmentActivity或者Fragment中便实现不了同样的效果。这时候,我们可以通过以下方式,在XListView中添加方法autoRefresh(),如下代码块:
然后在需要自动下拉刷新的地方调用该方法
即可
现在有个新的需求,就是进入到页面中的时候,需要其自动下拉刷新,从而去获取相对应的数据。其实XListView中有一个方法
mListview.pullRefreshing();就是让其“自动去刷新”。但是单纯调用该方法无法达到我们所需要的效果。我们可以通过以下代码实现我们所需要的效果:
new Handler().postDelayed(new Runnable() { @Override public void run() { // TODO Auto-generated method stub mListView.pullRefreshing(); //这里做我们想要的操作 } }, 10);
在Activity中,通过上诉代码可以实现自动下拉刷新的功能。但是同样的代码,放到FragmentActivity或者Fragment中便实现不了同样的效果。这时候,我们可以通过以下方式,在XListView中添加方法autoRefresh(),如下代码块:
public void autoRefresh() { mLastY = -1; // reset // 判断是否在第一行,如果不是第一行,则不执行 if (getFirstVisiblePosition() == 0) { // 判断是否可刷新和不处于刷新状态 if (mEnablePullRefresh && mPullRefreshing != true) { mPullRefreshing = true; mScrollBack = SCROLLBACK_HEADER; if (mHeaderViewHeight == 0) { int width = ((WindowManager) this.getContext().getSystemService(Context.WINDOW_SERVICE)) .getDefaultDisplay().getWidth(); mHeaderViewContent.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec((1 << 30) - 1, MeasureSpec.AT_MOST)); mScroller.startScroll(0, 0, 0, mHeaderViewContent.getMeasuredHeight(), SCROLL_DURATION); invalidate(); } else { mScroller.startScroll(0, 0, 0, mHeaderViewHeight, SCROLL_DURATION); invalidate(); } mHeaderView.setState(XListViewHeader.STATE_REFRESHING); if (mListViewListener != null) { mListViewListener.onRefresh(); } } resetHeaderHeight(); } }
然后在需要自动下拉刷新的地方调用该方法
mListView.autoRefresh()
即可
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories