专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 移动开发

下拉刷新ListView的施用

发布时间:2010-05-30 05:29:38 文章来源:www.iduyao.cn 采编人员:星星草
下拉刷新ListView的使用

本文主要介绍如何使用类似新浪微博客户端下拉刷新效果的ListView,关于其实现原理见下拉刷新ListView的实现原理。

 

首先让我们看下效果

四张图分别为第一次下拉、第一次释放、第一次刷新中、第二次下拉的效果,其中的文本可以设置,可以下载Demo代码DropDownToRefreshListView编译运行。下面看如何使用

 

1、引入公共库

引入TrineaAndroidCommon GoogleCode或(TrineaAndroidCommon Git)作为android项目的library,或是自己抽取其中的DropDownToRefreshListView部分使用

 

2、在xml中配置

用现在的DropDownToRefreshListView替换原来的ListView即可

<com.trinea.common.view.DropDownToRefreshListView 
	android:id="@+id/statusListView"
	android:layout_width="match_parent"
	android:layout_height="match_parent"/>

 

3、在java类中调用

主要是设置listView的refresh listener

DropDownToRefreshListView statusListView = (DropDownToRefreshListView)findViewById(R.id.statusListView);
statusListView.setOnRefreshListener(new OnRefreshListener() {

	@Override
	public void onRefresh() {
		doSomeThing();
		statusListView.onRefreshComplete("更新成功");
	}
});

注意:

1、刷新结束时需手动调用listView的onRefreshComplete函数

上面的onRefresh中最后调用了listView的onRefreshComplete函数,这个函数会对listView进行一些重置

如果onRefresh里面为线程操作,需要在线程完成后调用onRefreshComplete函数,如Thread的run函数结束前,AsyncTask子类的onPostExecute函数中。

 

2、刷新Header占用了ListView position为0的位置

通过本文第二大部分对原理的介绍可以知道,DropDownToRefreshListView的实现是通过在原来的ListView添加了个Header,所以刷新Header占用了position为0的位置,对于listView中的其他item都是从position从1开始算起。使用statusListView.setSelection(0)会滚动到的刷新View的item,使用statusListView.setSecondPositionVisible()设置position为1(即第二个)的item可见

 

4、其他设置

4.1 设置相关的提示文本,在strings.xml文件中重定义相关变量,如

<string name="drop_down_to_refresh_list_pull_tips">下拉可以刷新...</string>
<string name="drop_down_to_refresh_list_release_tips">松开可以刷新...</string>
<string name="drop_down_to_refresh_list_refreshing_tips">刷新中...</string>
<string name="drop_down_to_refresh_list_refresh_view_tips">点击可以刷新...</string>

 

4.2 设置相关文本的颜色

在colors.xml文件中重定义dropDownToRefreshListHeaderFontColor变量,如

<color name="drop_down_to_refresh_list_header_font_color">#424952</color>

 

4.3 设置刷新结束时listView刷新View对上次更新的提示

可以使用onRefreshComplete(CharSequence lastUpdatedText)或单独调用onRefreshComplete(CharSequence lastUpdatedText)

 

4.4 设置刷新View为开始刷新时状态

需要时也可以手动调用onRefreshBegin表示开始刷新,这个函数只会设置相关View的状态,不会进行真正的刷新操作(onRefresh函数完成),同onRefreshComplete效果相反。

 


友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: