Nativescript Collapsed GridLayout Row 仍然发生在 UI
Nativescript Collapsed GridLayout Row still take place in the UI
使用此布局:
<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 行之间看到白色 space?我希望 D 行上升并取代 C 行。
我正在物理设备上进行测试,下面是对结果的快速描述:
我预计结果会像这样 html table:
<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>
这是 html 结果的片段:
那是因为你定义了一个 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 放回可见状态,布局也会自行调整大小
使用此布局:
<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 行之间看到白色 space?我希望 D 行上升并取代 C 行。
我正在物理设备上进行测试,下面是对结果的快速描述:
我预计结果会像这样 html table:
<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>
这是 html 结果的片段:
那是因为你定义了一个 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 放回可见状态,布局也会自行调整大小