国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > 使用Android-PullToRefresh库中的PullToRefreshListView添加header时遇到的问题

使用Android-PullToRefresh库中的PullToRefreshListView添加header时遇到的问题

来源:程序员人生   发布时间:2015-08-17 09:13:10 阅读次数:2955次

在开发中我们常常有向ListView中添加header的需求,并且这个ListView还要提供下拉刷新的功能。下拉刷新库Android-PullToRefresh是个不错的下拉刷新库,不但支持ListView,还支持GridView,WebView,ScrollView。但是当我想向PullToRefreshListViews中添加header的时候我并没有找到addHeaderView方法。后来发现PullToRefreshListViews其实不是ListView的子类。他里边持有ListView对象。因而我找到了下边的代码来添加了1个header.

mInviteRecordLv = (PullToRefreshListView) findViewById(R.id.invest_record_list); View header = getLayoutInflater().inflate(R.layout.invite_record_header, mInviteRecordLv, false); ListView lv = mInviteRecordLv.getRefreshableView(); lv.addHeaderView(header); mInviteRecordLv.setAdapter(new InviteRecordAdapter(this));


我以为向上边那样写应当就没有问题了,但是当我运行程序的时候出现了以下毛病:

               java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams

后来把代码改成下边这样成功得到了我要的结果

mInviteRecordLv = (PullToRefreshListView) findViewById(R.id.invest_record_list); AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT); View header = getLayoutInflater().inflate(R.layout.invite_record_header, mInviteRecordLv, false); header.setLayoutParams(layoutParams); ListView lv = mInviteRecordLv.getRefreshableView(); lv.addHeaderView(header); mInviteRecordLv.setAdapter(new InviteRecordAdapter(this));


Android-PullToRefresh库的下载地址:https://github.com/chrisbanes/Android-PullToRefresh


生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生