使用Android-PullToRefresh库中的PullToRefreshListView添加headerView

来源:互联网 发布:网络编辑工具箱 编辑:程序博客网 时间:2024/06/05 18:18
在开发中我们常常有向ListView中添加header的需求,并且这个ListView还要提供下拉刷新的功能。下拉刷新库Android-PullToRefresh是个不错的下拉刷新库,不仅支持ListView,还支持GridView,WebView,ScrollView。但是当我想向PullToRefreshListViews中添加header的时候我并没有找到addHeaderView方法。后来发现PullToRefreshListViews并不是ListView的子类。他里边持有ListView对象。于是我找到了下边的代码来添加了一个header.
[Java] 纯文本查看 复制代码
?
1
2
3
4
5
mInviteRecordLv = (PullToRefreshListView) findViewById(R.id.invest_record_list); 
02.View header = getLayoutInflater().inflate(R.layout.invite_record_header, mInviteRecordLv,false); 
03.ListView lv = mInviteRecordLv.getRefreshableView(); 
04.lv.addHeaderView(header); 
05.mInviteRecordLv.setAdapter(newInviteRecordAdapter(this)); 


我以为向上边那样写应该就没有问题了,但是当我运行程序的时候出现了如下错误:
java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
后来把代码改成下边这样成功得到了我要的结果

[Java] 纯文本查看 复制代码
?
1
2
3
4
5
6
7
mInviteRecordLv = (PullToRefreshListView) findViewById(R.id.invest_record_list); 
02.AbsListView.LayoutParams layoutParams = newAbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT); 
03.View header = getLayoutInflater().inflate(R.layout.invite_record_header, mInviteRecordLv,false); 
04.header.setLayoutParams(layoutParams); 
05.ListView lv = mInviteRecordLv.getRefreshableView(); 
06.lv.addHeaderView(header); 
07.mInviteRecordLv.setAdapter(newInviteRecordAdapter(this)); 
0 1
原创粉丝点击