LayoutParams 类型转换异常:java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams
来源:互联网 发布:slackware安装软件 编辑:程序博客网 时间:2024/06/04 19:15
错误日志1:
06-13 10:55:50.410: E/KVLog(1129): Error info:java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
06-13 10:55:50.423: E/KVLog(1129): Cause Result:java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
06-13 10:55:50.423: E/KVLog(1129): at android.widget.FrameLayout.onLayout(FrameLayout.java:324)
一般设置LayoutParams的时候会报错,是因为LayoutParams有很多种,引用错误就会报错,那么如何快速解决这个错误呢
通过观察发现只要在日志信息中看到 at android.widget.FrameLayout.onLayout,(一般在cause result的下一行)那么onlayout前面显示的那个layout就是你真正要用到的layout,替换掉原来已用的layout,立刻解决问题!!!
错误日志2:
02-27 11:11:03.952: E/AndroidRuntime(3168): java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
02-27 11:11:03.952: E/AndroidRuntime(3168): at android.widget.GridView.onMeasure(GridView.java:1028)
02-27 11:11:03.952: E/AndroidRuntime(3168): at android.view.View.measure(View.java:12761)
通过观察发现只要在日志信息中看到错误日志第一行的信息,那么第一行中cannot be cast to 后面的layoutparams就是你要的真正的layoutparams,比如这个 android.widget.FrameLayout$LayoutParams是错误的,而cannot be cast to后面的android.widget.AbsListView$LayoutParams是对的
今天写一个ListView,用的是自定义的布局,这个ListView的headerView也是自定义布局,运行报错:
java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
解决方法:如果你要将一个view添加到另一个布局中,你必须设定该View的布局参数为其父类所使用的布局参数类型。即要在代码中动态改变某组件的高度,其布局参数类型应该是其父类所使用的布局参数类型。
参考我的代码,因为ListView的headerView的LayoutParams参数没有改为和ListView一致;
改为
ListView.LayoutParams LP=new ListView.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
后正常显示。
- LayoutParams 类型转换异常:java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams
- java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
- java.lang.ClassCastException: android.widget.*Layout$LayoutParams
- java.lang.ClassCastException: android.widget.*Layout$LayoutParams
- java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widg
- java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widg
- java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.....
- java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.wid
- java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widg
- android异常总结--java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast t
- Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
- Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
- Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
- 转 Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
- Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
- Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams 错误
- 错误:java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams
- 抛出 java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to andr异常
- 【bzoj3529】[Sdoi2014]数表
- register_chrdev_region
- C语言的赋值表达式返回右值
- WordPress编辑文章时出现的错误
- Companies Using Lisp
- LayoutParams 类型转换异常:java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams
- mac 开发: 打开电脑内安装应用和打开mac 浏览器
- 深入了解 Struts
- 我的框架--QiCai(日志类)
- div中内嵌并排div的显示问题
- [转]HTTP 协议详解
- react-native(Mac for android)
- Eclipse(Java)配置opencv2.4.11
- Java程序员从笨鸟到菜鸟之(六)I/O流操作