Android - 何时适合调整大小并创建控件?

时间:2013-10-04 01:36:03

标签: android android-custom-view

民间,

我正在开发一个自定义视图,将图像显示为网格:

class MyImageGridView extends LinearLayout {
   ....
   public addItem(String imageFileName);
   ...
}

从MainActivity的onCreate方法,我为我需要显示的所有图片调用addItem

在某些时候,我需要创建子控件。但首先,我需要计算控件的宽度。此宽度成比例地基于父控件的宽度。例如,如果MyImageGridView的宽度为600并且我决定每行显示3个图像,则我的子控件的宽度将设置为

600/3=200 pixels. 

父控件的宽度也决定了我最终拥有的子控件的数量。对于网格中的每一行,我最终创建了另一个LinearLayout控件。

我想我可以在onSizeChanged MyImageGridView事件中完成所有这些操作。但是,似乎我无法在onSizeChanged中创建任何子控件。 Eclipse刚刚锁定。

我无法在onCreate中创建控件,因为控件的宽度尚未确定,因此我不知道最终会创建多少个子控件。

我想知道是否有人对动态创建控件的理想事件有更好的了解。

提前感谢您的帮助。

的问候,
彼得

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以在onLayout期间执行此操作,这将提供从onMeasure确定的尺寸。听起来你可能不需要在你的情况下覆盖onMeasure,这样可以保持简单。在onLayout期间,您需要谨慎添加视图,Android框架提供了一些专门的成员来执行此操作..请参阅addViewInLayout ..