问题描述:
点击某个按钮,进入MyGridview(MyGridView 继承GridView)时,出现了java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be case to AbsListView.LayoutParams
异常。
查找思路:
- 引起该问题控件的父布局类型是否和要求的布局类型一样;
如Log 信息提示,需要的是AbsListView
类型的LayoutParams
,而你提供的是RelativeLayout
类型的参数。这时要看GridView
的父布局类型是否正确。 - Adapter 适配器里面用到的
item
布局文件(如我用到的是GridView);- 检查
item xml
文件的布局类型是否出问题; - 是否给
xml
文件中的某个布局(如某个LinearLayout
类型的布局),在代码中设置LayoutParams
参数。(后面发现的就是这种情况)
- 检查
问题截图: