ListView添加FootView的部分问题和解决记录

一、

java.lang.ClassCastException: 自己的包名+Adapter名 cannot be cast to android.widget.HeaderViewListAdapter

出现场景:setAdapter后,由于业务需要,需要removeFootView,报如上异常。

解决方案:在初始化组件时(一般setAdapter都是写在组件初始化代码里的),先addFootView,若是一开始不需要显示footView,可在setAdapter调用后removeFootView即可。

这样setAdapter执行时会转换我们的adapter为HeaderViewListAdapter,后续相关操作就不会出现转化异常的问题了。

 

二、一开始FootView上的点击事件有效,remove再add,点击事件失效。

业务逻辑:搜索历史界面,footview是清除历史记录的按钮

出现场景:进入页面打开搜索历史,点击footview可以执行,接着在当前页面添加搜索,动态展示出搜索历史,尽管footview依旧能够显示出来,但此时点击footview,发现点击事件不再被触发。

解决方案:尽管FootView定义的是全局变量,但removeFootView后点击事件就会失效,因此每次addFootView时传入的footview需要重新实例化即可。

你可能感兴趣的:(工作记录)