有人能够以一种易于理解的方式简要解释不同Flex尺寸属性的含义吗?
到目前为止我所拥有的:
真实大小
width和height.这是组件的实际(和最终)大小.如果未明确设置,则将通过应用所有布局规则和百分比大小来计算大小.
明确的大小
explicitWidth和explicitHeight.我们需要两个属性来决定是否需要计算实际大小,或者只是从这些属性中复制.
测量尺寸
measuredWidth,measuredHeight,measuredMinWidth和measuredMinHeight.组件的默认大小.该组件应该在其measure()钩子中设置这些大小.仅当未设置显式大小(例如width或explicitHeight)时,默认大小才适用.仅在百分比大小的情况下考虑最小/最大测量尺寸.计算的(实际)尺寸不能小于测量的最小尺寸.
百分比大小
percentWidth和percentHeight.明显.
最小尺寸
minWidth,minHeight.返回组件的最小大小 - 显式设置或者设置默认的最小大小measure().允许设置显式最小值,以覆盖默认(测量)最小值.
明确的最小尺寸
explicitMinWidth,explicitMinHeight.与显式大小相同的角色.如果设置,则使用这些值,否则使用默认(测量的)最小值.
最大尺寸
maxWidth,maxHeight.返回组件的最大大小 - 显式设置或默认最大大小10000.
显式最大尺寸
explicitMaxWidth,explicitMaxHeight.与显式大小或显式最小大小相同的角色.如果设置,这些值将用于确定上部大小边框,否则用于默认最大大小10000.
希望,还有更多尺寸属性需要讨论.
我有一个不同尺寸的矩形列表。
rects = [100x20, 30x10, 10x10, 70x20, 40x30, 50x10]
我正在尝试从这些矩形渲染一张桌子。如果我有固定的列数,我可以像这样简单地计算行数以及每一行和每一列的大小:
numCols = 4;
for (i = 0; i < rects.size - 1, i++):
rect = rects[i];
col = i % numCols;
row = floor(i / numCols);
columns[col] = max(columns[col], rect.width);
rows[row] = max(rows[row], rect.height);
end for;
Run Code Online (Sandbox Code Playgroud)
现在,我希望通过最大行宽来配置表格。列数取决于最佳行宽的运行时计算。
有了上面的列表,最大行设置为140,我希望我的表是:
rects = [100x20, 30x10, 70x10, 10x20, 40x30, 10x10]
100x20, 30x10
70x10, 10x20
40x30, 10x10
cols = [100, 30]
rows = [20, 20, 30]
Run Code Online (Sandbox Code Playgroud)
解决这个问题的第一个想法是为每个可能的列数缓存最大列宽。总和<=最大行宽的最后一个条目将获胜。
max[1] = [100]
max[2] = [100, 30] - …Run Code Online (Sandbox Code Playgroud)