使用此布局:
<GridLayout columns="70, *" rows="auto, auto, auto">
<Label row="0" col="0" rowSpan="3" text="A" style="background-color: red;"></Label>
<Label row="0" col="1" text="B" style="background-color: green;"></Label>
<Label row="1" col="1" text="C" visibility="collapse" style="background-color: blue;"></Label>
<Label row="2" col="1" text="D" style="background-color: orange"></Label>
</GridLayout>
我有理由在B行和D行之间看到空格吗?我预计D行会上升并取代C行。
我希望结果表现得像这个html表:
<table>
<tbody>
<tr>
<td rowspan="3" style="width: 70px; background-color: red;">A</td>
<td style="width: 500px; background-color: green;">B</td>
</tr>
<tr>
<td style="display: none; background-color: blue;">C</td>
</tr>
<tr>
<td style="background-color: orange;">D</td>
</tr>
</tbody>
</table>
答案 0 :(得分:2)
这是因为您已经定义了一个包含3行的GridLayout,并将标签D设置为第三行。即使标签C折叠,其位置也不会被占用。
如果您希望布局与第二张图片完全相同,那么我建议:
<GridLayout columns="70, *" rows="auto">
<Label row="0" col="0" text="A" style="background-color: red;"></Label>
<StackLayout row="0" col="1">
<Label text="B" style="background-color: green;"></Label>
<Label text="C" visibility="collapse" style="background-color: blue;"></Label>
<Label text="D" style="background-color: orange"></Label>
</StackLayout>
</GridLayout>
P / s:如果您将标签C放回可见状态,布局也会自行调整大小