MXML:Spark外观VGroups滚动条

时间:2012-06-05 12:33:33

标签: flash flex mxml

我有一个VGRoup,如果内容太长,它会自动获取滚动条。

我想为滚动条设置皮肤(使其更宽)。我怎么能这样做?

<s:Panel title="Replay" width="95%" height="860" top="920" horizontalCenter="0">
    <s:VGroup id="vgroup" left="10" right="10" top="10" bottom="10">
        <s:List id="list" height="100%" width="100%" itemRenderer="ListRenderer" />         
    </s:VGroup>
</s:Panel>

1 个答案:

答案 0 :(得分:1)

首先你应该知道,获取滚动条不是VGroup,而是List。组是布局组件,没有任何可视元素。 (此外,VGroup在您显示的代码中是多余的,但我想您可能已为此问题删除了一些不相关的代码。)

现在进行换肤:你可以通过创建自己的Spark VScrollBarSkin版本来实现。如果您使用FlashBuilder,请右键单击您的项目(或您要创建外观的包);点击'新建&gt; MXML皮肤';在向导中填写spark.components.VScrollBar作为主机组件,并让它创建spark.skins.spark.VScrollBarSkin的副本。

enter image description here

在你刚刚创建的课程中,你会看到四个按钮,每个按钮都有自己的皮肤。一个是'向上滚动'按钮,另一个是'向下滚动'按钮,第三个是轨道(背景),也是可点击的,最后一个是你可以拖动的拇指。

现在,您可以像使用VScrollBarskin一样为每个按钮创建自定义外观,但由于您只想调整宽度,因此可能没有必要。仅在每个按钮上设置显式宽度就足够了。

现在要应用你的皮肤而不是默认皮肤,只需将它放在你的样式表中:

@namespace s "library://ns.adobe.com/flex/spark";

s|VScrollBar {
    skinClass: ClassReference("my.skins.VScrollBarSkin")
}

如果您希望它仅应用于List滚动条,请使用更具体的选择器:

s|List s|VScrollBar { ... }