从自己的类调整布局大小

时间:2013-02-04 20:25:24

标签: 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;
} 

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

1 个答案:

答案 0 :(得分:5)

如果你像这样覆盖宽度和高度,你应该覆盖onMeasure,检查你的身份,并通过在onMeasure上调用setMeasuredDimension()来设置正确的测量值。