首页 > 学院 > 开发设计 > 正文

使用开源控件PinnedSectionListView(头部驻留)的时候低版本api出现ClassCastException异常

2019-11-09 18:33:52
字体:
来源:转载
供稿:网友

问题描述:

    使用开源控件PinnedSectionListView的时候,在android4.0以上显示正常,但在android4.0及以下滑动ListView的时候出现java.lang.ClassCastException: android.view.ViewGroup$LayoutParams异常,异常信息如下:

问题原因:(参考链接1:https://my.oschina.net/yulin/blog/378292,参考链接2:http://blog.csdn.net/zhangphil/article/details/50054555)

    主要原因是因为generateDefaultLayoutParams()方法在android4.0和android4.0以上返回的结果不一样,低版本的generateDefaultLayoutParams生成的是ViewGroup的layoutparams, 如果强转成AbsListView.LayoutParams会出现java.lang.ClassCastException: android.view.ViewGroup$LayoutParams异常

解决方案:

    在PinnedSectionListView中重写generateDefaultLayoutParams()方法:    // add by Zhang Phil @CSDN     @Override     PRotected ViewGroup.LayoutParams generateDefaultLayoutParams() {         LayoutParams mLayoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);         return mLayoutParams;     }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表