Flex/mxml: проблема с макетом новичка, связанная с TabBar

Если вы запустите следующий код mxml, вы увидите разрыв между TabBar и BorderContainer. Как просто убрать этот пробел? У меня проблемы с изложением. Ничего, что я ввожу в TabBar (например, top="10" или y="10"), не имеет никакого эффекта.

<?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:VGroup top="10" bottom="20" left="20" right="20">

    <s:Group width="100%">

        <s:HGroup left="0" top="2">
            <s:Label id="titleTextId" text="My Title" fontWeight="bold" fontSize="18"/>
        </s:HGroup>

        <s:HGroup right="0" verticalAlign="middle">
            <s:Button label="Button1" width="65"/>
            <s:Button label="Button2" width="65" />
        </s:HGroup>

    </s:Group> 

    <s:TabBar id="tabs" dataProvider="{vs}"/>

    <mx:ViewStack id="vs" height="100%" width="100%">

        <s:NavigatorContent label="Tab 1"  width="100%" height="100%">
            <s:BorderContainer width="100%" height="100%" borderWeight="1" borderStyle="solid">
                <s:Label left="3" top="5" text="This is my first tab..."/>
            </s:BorderContainer>
        </s:NavigatorContent>
        <s:NavigatorContent label="Tab 2"  width="100%" height="100%">
            <s:BorderContainer width="100%" height="100%" borderWeight="1" borderStyle="solid">
                <s:Label left="3" top="5" text="This is my second tab..."/>
            </s:BorderContainer>
        </s:NavigatorContent>

    </mx:ViewStack>
</s:VGroup> 


person ggkmath    schedule 13.07.2012    source источник


Ответы (1)


Попробуйте атрибут gap, это должно сработать!

<s:VGroup top="10" bottom="20" left="20" right="20" gap="0">
person Nate    schedule 13.07.2012
comment
Спасибо, Нейт, отлично! Я понятия не имел, что для VGroup существует ненулевой разрыв по умолчанию. - person ggkmath; 14.07.2012
comment
Почему top= или y= не работают внутри TabBar? Единственный способ добавить вертикальное пространство над TabBar (кроме настроек промежутка VGroup) — это использовать <s:Spacer height="10"/> прямо над TabBar? - person ggkmath; 14.07.2012
comment
Что вы пытаетесь достичь? Зазор, который вы видели, был связан с менеджером по расположению, а не с самим компонентом, поэтому вам нужно избавиться от этого пробела в макете, а не от компонента. Есть смысл? - person Nate; 14.07.2012
comment
Извините, я задал второй вопрос, теперь, когда для свойства gap установлено значение 0, я пытаюсь добавить вертикальное пространство между меткой для My Title и компонентом TabBar таким образом, чтобы это не повлияло на остальную часть layout (как это делает свойство gap VGroup, так как оно добавляется между всеми компонентами). - person ggkmath; 14.07.2012
comment
Вы можете пойти с прокладочным элементом ;) - person Nate; 14.07.2012