0
<s:VGroup horizontalAlign="center" horizontalCenter="0" verticalCenter="0" gap="0">
    <mx:ViewStack id="view" width="450" height="300" />
    <!-- NavigatorContent dynamically gets added to view on appComplete-->
    <s:TabBar dataProvider="{view}" skinClass="skins.CustomSparkTabBarSkin" />
</s:VGroup>

自定义皮肤:

<s:Skin 
xmlns:fx="http://ns.adobe.com/mxml/2009" 
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:fb="http://ns.adobe.com/flashbuilder/2009"     
alpha.disabled="0.5"><fx:Metadata>
    <![CDATA[ 
    [HostComponent("spark.components.TabBar")]
    ]]>
</fx:Metadata> 

<fx:Script  fb:purpose="styling" >
    <![CDATA[ 

    import mx.core.UIComponent;

    /**  Push the cornerRadius style to the item renderers.*/
    override protected function updateDisplayList(unscaledWidth:Number, unscaleHeight:Number):void {
        const numElements:int = dataGroup.numElements;
        const cornerRadius:int = hostComponent.getStyle("cornerRadius");

        for (var i:int = 0; i < numElements; i++) {
            var elt:UIComponent = dataGroup.getElementAt(i) as UIComponent;
            if (elt)
                elt.setStyle("cornerRadius", cornerRadius);
        }
        super.updateDisplayList(unscaledWidth, unscaledHeight);
    }

    ]]>            
</fx:Script>
<s:states>
    <s:State name="normal" />
    <s:State name="disabled" />
</s:states>
<!--- @copy spark.components.SkinnableDataContainer#dataGroup -->
<s:DataGroup id="dataGroup" width="100%" height="100%">


结果是这样的:http: //yozef.com/files/tabExample.png

我想将该 TabBar 放置在视图堆栈的底部,圆角朝外。

4

1 回答 1

0

从头开始... 在设计模式下... 在大纲视图中单击 TabBar,在属性视图中单击 Skin 旁边的下拉菜单并选择 Create Skin... 切换到源视图并找到 ButtonBarButton 并添加旋转="180" 到它...(这几乎是您想要的,但文本会颠倒)返回设计视图(在您的 TabBar 自定义皮肤上)并单击大纲视图中的 ButtonBarButton 并在属性视图中单击在 Skin 旁边的下拉菜单中选择 Create Skin... 在 Outline 视图中找到 labelDisplay 并添加 rotation="180"

这是我能想到的实现您正在寻找的最快方法,如果文本不是您想要的位置,您可能会发现您想要调整自定义 ButtonBarButton 外观中的其他值...

于 2010-11-22T03:11:44.750 回答