这两天,因为要做一个自适应多分辨率的软件,项目中,涉及的布局得通过XML与代码相结合布局方式,容器的大小在代码中限定,即通过调用Layoutparams来限定,有一个原则使这样的: 子元素的LayoutParams是由父元素决定的。可是各个XML最上面一层的容器通过Layoutparams来限定时,不知道父元素类型(LinearLayout、RelativeLayout等等)。最后总是报错。后来通过报错信息发现是java.lang.classCastException 即类型转化发生错误。多试了几次发现最上面一层的容器通过Layoutparams来限定时,Layoutparams类型为FrameLayout
添上一部分代码:
RelativeLayout relative;
relative = (RelativeLayout) this.findViewById(R.id.main_Layouts);//最上层容器
FrameLayout.LayoutParams relativeLayout = new FrameLayout.LayoutParams(width,height);
relative.setLayoutParams(relativeLayout);