1

我有一个包含 2 个图形的组,我将组的垂直布局中的间隙设置为 0,但 2 个图形之间仍然存在 1 个像素的间隙。知道如何摆脱这个吗?

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <s:Group>
        <s:layout>
            <s:VerticalLayout gap="0"/>
        </s:layout>
        <s:Graphic height="100">
            <s:Path data="M 50 0 L 50 100 Z" height="100">
                <s:stroke>
                    <s:SolidColorStroke color="#333333"/>
                </s:stroke>
            </s:Path>
        </s:Graphic>
        <s:Graphic height="1">
            <s:Path data="M 0 0 L 100 0 Z" height="1">
                <s:stroke>
                    <s:SolidColorStroke color="#333333"/>
                </s:stroke>
            </s:Path>
        </s:Graphic>
    </s:Group>
</s:Application>
4

1 回答 1

1

对您的问题的简单回答是,差距似乎来自您为第一个图形提供的明确高度。只需将其删除,差距就会消失。

(IMO)更好的答案是这段代码对于创建简单的图形似乎有点复杂。

  • 没有理由将每一行包装在一个Graphics类中。不过,您可以扩展 Graphic 以创建一个独立的、可重用的图形类。
  • 有一个Line画直线的类。比使用容易得多Path

如果您绝对需要VerticalLayout,您可以像这样重写该代码:

<s:Group>
    <s:layout>
        <s:VerticalLayout gap="0" horizontalAlign="center" />
    </s:layout>
    <s:Line height="100">
        <s:stroke>
            <s:SolidColorStroke color="#333333" />
        </s:stroke>
    </s:Line>
    <s:Line width="100">
        <s:stroke>
            <s:SolidColorStroke color="#333333" />
        </s:stroke>
    </s:Line>
</s:Group>

但如果由于某种原因你真的不需要它,它甚至可以简化为:

<s:Group>
    <s:Line height="100" horizontalCenter="0">
        <s:stroke>
            <s:SolidColorStroke color="#333333" />
        </s:stroke>
    </s:Line>
    <s:Line width="100" bottom="0">
        <s:stroke>
            <s:SolidColorStroke color="#333333" />
        </s:stroke>
    </s:Line>
</s:Group>
于 2012-05-10T09:41:35.613 回答