网格和表格布局

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

UIListLayout 相比,UIGridLayoutUITableLayout 允许更多结构化和组织化的布局。这些最适合用于诸如商店库存的界面,在这种情况下,每个项目可以在均匀大小的网格瓦片中展示,或者项目可以被归类为相关的行/列。

网格布局

UIGridLayout 在其父容器内以统一大小的网格单元排列同级的 GuiObjects。单元格根据布局的 FillDirection 以行或列的方式添加,直到下一个单元不适合,然后开始新的一行或新的一列。为了进一步控制,您可以使用 FillDirectionMaxCells 属性设置每行或每列的最大单元格数量。

默认情况下,UIGridLayout 按照同级 GuiObjectsLayoutOrder 排序,其中较低的值在较高的值之前,而相等的值则根据您添加它们的顺序进行排序。如果您将布局的 SortOrder 更改为 Enum.SortOrder.Name,则同级将按字母顺序排序。

表格布局

UITableLayout 将同级 GuiObjects 及其子对象排列成表格格式。默认的 FillDirectionVertical,这意味着同级首先被排列成行,这些同级的子对象则水平排列以形成列,从而使每行中的每个单元格具有相同的高度,每列中的每个单元格具有相同的宽度。

这种模式模仿标准的 HTML 行/列结构:


<table>
<tbody>
<tr>
<!-- 行1 -->
<td>标签1</td> <!-- TextLabel1 -->
<td>标签2</td> <!-- TextLabel2 -->
<td>标签3</td> <!-- TextLabel3 -->
</tr>
<tr>
<!-- 行2 -->
<td>标签4</td> <!-- TextLabel4 -->
<td>标签5</td> <!-- TextLabel5 -->
<td>标签6</td> <!-- TextLabel6 -->
</tr>
<tr>
<!-- 行3 -->
<td>标签7</td> <!-- TextLabel7 -->
<td>标签8</td> <!-- TextLabel8 -->
<td>标签9</td> <!-- TextLabel9 -->
</tr>
</tbody>
</table>

除非您启用布局的 FillEmptySpaceColumnsFillEmptySpaceRows 属性,否则同级 GuiObjects 的大小决定单元格的维度。例如,大小为 UDim2.new(0.25, 0, 0.1, 0)TextLabel 将在父容器内创建一个宽度为 25% 和高度为 10% 的表格单元格。

©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。