首页 > 移动平台 > 详细

java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widg

时间:2014-04-03 23:06:52      阅读:850      评论:0      收藏:0      [点我收藏+]

有时候需要在在代码中设置LayoutParams,自己为一个FrameLayout设置LayoutParams的时候,遇上如题问题:

1
java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams<br>

FrameLayout的父控件是一个LinearLayout控件,问题出在,LinearLayout为子控件分配空间的时候,获取FrameLayout的LayoutParams的必须为LinearLayout.LayoutParams,而非FrameLayout.LayoutParams。

简单的举个栗子说明一下:最外层有ReLativeLayout A,里面有两个LinearLayout B、C,而B中又有一个一个FrameLayout D。如果要在代码里设置B的LayoutParams,B的LayoutParams要为RelativeLayout.LayoutParams。

1
2
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    B.setLayoutParams(params);

 而D要设置的话,需要:

1
2
3
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0);
    params.weight = 8;
    D.setLayoutParams(params);

 

 

 

 

 

 

 

 

 

java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widg,布布扣,bubuko.com

java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widg

原文:http://www.cnblogs.com/zhaoxiaomeng/p/3643104.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!