Android 关于上文中第三方开源PinnedSectionListView异常崩溃报错问题解决方案

Android PinnedSectionListView是一个良好的第三方开源悬停分组ListView,其在github上的项目主页是:https://github.com/beworker/pinned-section-listview ,在涉及到一些联系人分组,好友分组等需要对ListView进行分组的情况下,使用起来效果不错。

但是作为开源项目,本身也在不停的迭代和完善中,最近(截止2015年11月26日)发现PinnedSectionListView在一些Android SDK版本中运行时候异常崩溃报错,如图:

Android 关于上文中第三方开源PinnedSectionListView异常崩溃报错问题解决方案_第1张图片


报错的关键内容是:

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


错误内容提示在PinnedSectionListView.java的202行出现错误,如图:

Android 关于上文中第三方开源PinnedSectionListView异常崩溃报错问题解决方案_第2张图片


经由研究发现,此原因是在调用Android系统的generateDefaultLayoutParams()方法时候,发生异常,致使代码运行获得的结果layoutParams不正常,进而导致PinnedSectionListView崩溃。


解决方案:
自己动手重写Android系统的generateDefaultLayoutParams()方法,返回自己定制的LayoutParams值。

具体实现:
在PinnedSectionListView.java中增加自己重写的generateDefaultLayoutParams()方法:


你可能感兴趣的:(Android 关于上文中第三方开源PinnedSectionListView异常崩溃报错问题解决方案)