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



伙计们,

我正在处理一个将图像显示为网格的自定义视图:

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

从 MainActivity 的onCreate方法中,我调用addItem来显示我需要显示的所有图像。

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

600/3=200 pixels. 
父控件的

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

我想我可以在MyImageGridView的情况下onSizeChanged做这一切.但是,似乎我无法真正在onSizeChanged中创建任何子控件。日食只是锁定。

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

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

提前感谢您的帮助。

问候
彼得

在这种情况下,

您可能可以在onLayout期间执行此操作,它将提供由onMeasure确定的尺寸。听起来您可能不需要在您的情况下覆盖 onMeasure,因此保持简单。在onLayout期间添加视图时需要谨慎,android框架提供了一些专门的成员来执行此操作。请参阅添加视图布局。

最新更新