从自己的类调整布局大小

Eum*_*coz 0 android relativelayout

我正在创建一个子类RelativeLayout的自定义布局.我希望这有固定的尺寸,例如,一个正方形将是250x250,一个矩形将是300x100,等等.为此,我添加了一个新的xml属性,类型.在看到布局的类型后,我想调整布局大小.我尝试从我的类构造函数中执行以下操作:

switch(type)
{
   case SQUARE:
       setLayoutParams(new MyLayout.LayoutParams(250,250));
       break;
   case RECTANGLE:
       setLayoutParams(new MyLayout.LayoutParams(300,100));
       break;
} 
Run Code Online (Sandbox Code Playgroud)

但是,这并没有覆盖xml文件的高度和宽度.无论如何要从我的布局中实现我想要的,或者必须从父容器进行尺寸更改?

Gab*_*han 5

如果你像这样覆盖宽度和高度,你应该覆盖onMeasure,检查你是什么,并通过在onMeasure上调用setMeasuredDimension()来设置正确的度量.