2012-06-05 50 views
0

我有一个VGRoup,如果内容变得太长,它会自动获取滚动条。MXML:Spark皮肤VGroups滚动条

我想皮肤的滚动条(使其更宽)。我怎样才能做到这一点?

<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> 
+0

您可以参考此链接,这可能有助于http://dgrigg.com/blog/2010/07/06/flex-spark-list-with-custom-scroll-bar-and-itemrenderer/ – Triode

回答

1

首先,您应该知道,它不是获得滚动条的VGroup,而是List。组是没有任何视觉元素的布局组件。 (另外VGroup在你展示的代码中是多余的,但我想你可能已经删除了一些不相关的代码来达到这个问题的目的。)

现在为了剥皮:你通过创建你自己的Spark版本VScrollBarSkin。如果您使用FlashBuilder,请右键单击您的项目(或您想要创建皮肤的包);点击“新建> 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") 
} 

或者用一个更具体的选择,如果你希望它仅适用于列出比如滚动条:

s|List s|VScrollBar { ... } 
+0

谢谢!什么是CSS的财产,使其更广泛?或者我在哪里可以找到有关VScrollBars css属性的文档? – clamp

+0

@clamp当然,VScrollBar的css属性可以在[文档](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/components/VScrollBar.html#styleSummary)中找到,但大小不能通过造型应用。您将需要制作自定义皮肤。 – RIAstar