Nativescript Collapsed GridLayout Row仍然在UI

时间:2016-10-25 14:18:47

标签: nativescript

使用此布局:

<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行。

我在物理设备上进行测试,所以现在快速绘制结果: enter image description here

我希望结果表现得像这个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>

这里是html结果的剪辑: enter image description here

1 个答案:

答案 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放回可见状态,布局也会自行调整大小