java.lang.ClassCastException: android.widget.RelativeLayout LayoutParams cannot be cast to android.widget.AbsListView LayoutParams
原因:FrameLayout的父控件是一个LinearLayout控件,LinearLayout为子控件分配空间的时候,获取FrameLayout的LayoutParams的必须为LinearLayout.LayoutParams,而非FrameLayout.LayoutParams
场景:开发的过程中我们可能需要在java代码中去给某个控件设置宽高,或者设置Margin值,再或者addView等等
举例:最外层是一个ReLativeLayout A,里面有一个LinearLayout B,而B中又有一个FrameLayout C
如果要在代码里设置B的LayoutParams,那么B的LayoutParams应为RelativeLayout.LayoutParams
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
B.setLayoutParams(params);
而C的LayoutParams应为LinearLayout.LayoutParams
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
C.setLayoutParams(params);