代码之家  ›  专栏  ›  技术社区  ›  341008 Sylvain

在flex中实现toolstrip

  •  1
  • 341008 Sylvain  · 技术社区  · 14 年前

    mx:Group , s:BorderContainer mx:HBox ,但无法在两者之间做出选择。它们似乎都不特别适合我的任务,因为它们只指定了其他对象的布局。是否有任何组件直接支持此类功能。我也考虑过使用 mx:MenuBar 但我不知道它是否足够灵活,可以添加搜索框之类的非菜单项。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Jonathan Dumaine    14 年前

    为了提高速度和易用性,请使用菜单栏。

    可能是这样的:

    //psuedo code
    <HGroup> //draw your background for both components in the HGroup container
     <menuBar> //menubar has a transparent background
     <spacer width="100%">
     <searchBox>
    </HGroup>
    
        2
  •  2
  •   Wade Mueller    14 年前

    在最基本的层次上,您的工具栏将需要布局控件。在实现工具栏时,我通常使用s:HGroup容器,并根据需要添加菜单、按钮、分隔符、搜索框等。你可能想画一些背景,比如渐变,让它看起来更好。对于Flex4,这通常是通过蒙皮来完成的,但是我认为对于这样一个不需要根据不同状态改变外观的简单组件来说,这有点过分了。我建议您使用以下方法,这样您就可以为工具栏绘制背景,而无需为其创建单独的外观文件:

    <?xml version="1.0" encoding="utf-8"?>
    <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark" 
             xmlns:mx="library://ns.adobe.com/flex/mx" width="100%">
        <s:Rect left="0" right="0" top="0" bottom="0">
            <s:fill>
                <s:LinearGradient rotation="90">
                    <s:GradientEntry color="0xe0e0e0"/>
                    <s:GradientEntry color="0xa0a0a0"/>
                </s:LinearGradient>
            </s:fill>
        </s:Rect>
        <s:HGroup top="2" bottom="2" left="8" right="8" verticalAlign="middle">
            <s:Button label="Something"/>
            <s:Button label="Another"/>
            <s:Button label="Other Another"/>
            <mx:Spacer width="100%"/>
            <s:TextInput/>
        </s:HGroup>
    </s:Group>