Flex – 如何更改打开的DropDownList高度

前端之家收集整理的这篇文章主要介绍了Flex – 如何更改打开的DropDownList高度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用FB4,我想改变开放火花DropDownList的高度。默认情况下,最多可以在滚动前显示6个项目。我的下拉列表包含7个项目,所以我想更改打开的下拉列表的高度以适合所有7个项目而不滚动。作为解决方法,我已经更改了项目的字体大小,使它们更小,所有7适合,但较小的字体看起来不太好。有没有办法改变这个高度?我对Flash很新,所以如果这是一个复杂的解决方案,请详细说明:-)。

解决方法

问题是,在Flex 4中,DropDownListSkin已经为您可能使用的默认外观定义了maxHeight =“134”。如果对象延伸超出该高度,则强制滚动条显示。所有您需要做的是将其DropDownListSkin代码复制/粘贴到自定义皮肤中,并通过CSS将其应用于您的DropDownList:

VariableHeightDropDownListSkin

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009"
  3. xmlns:s="library://ns.adobe.com/flex/spark"
  4. alpha.disabled=".5">
  5.  
  6. <!-- host component -->
  7. <fx:Metadata>
  8. <![CDATA[
  9. /**
  10. * @copy spark.skins.spark.ApplicationSkin#hostComponent
  11. */
  12. [HostComponent("spark.components.DropDownList")]
  13. ]]>
  14. </fx:Metadata>
  15.  
  16. <s:states>
  17. <s:State name="normal" />
  18. <s:State name="open" />
  19. <s:State name="disabled" />
  20. </s:states>
  21.  
  22. <s:PopUpAnchor id="popUp" displayPopUp.normal="false" displayPopUp.open="true" includeIn="open"
  23. left="0" right="0" top="0" bottom="0" itemDestructionPolicy="auto"
  24. popUpPosition="below" popUpWidthMatchesAnchorWidth="true">
  25.  
  26. <!-- removed maxHeight! -->
  27. <s:Group id="dropDown" minHeight="22">
  28. <!-- border/fill -->
  29. <s:Rect left="0" right="0" top="0" bottom="0">
  30. <s:stroke>
  31. <s:SolidColorStroke color="0x5380D0" />
  32. </s:stroke>
  33. <s:fill>
  34. <s:SolidColor color="0xFFFFFF" />
  35. </s:fill>
  36. </s:Rect>
  37.  
  38. <s:Scroller left="0" top="0" right="0" bottom="0" focusEnabled="false" minViewportInset="1">
  39. <s:DataGroup id="dataGroup" itemRenderer="spark.skins.spark.DefaultItemRenderer">
  40. <s:layout>
  41. <s:VerticalLayout gap="0" horizontalAlign="contentJustify"/>
  42. </s:layout>
  43. </s:DataGroup>
  44. </s:Scroller>
  45.  
  46. <s:filters>
  47. <s:DropShadowFilter blurX="20" blurY="20" distance="7" angle="90" alpha="0.45" color="0x6087CC" />
  48. </s:filters>
  49. </s:Group>
  50. </s:PopUpAnchor>
  51.  
  52. <s:Button id="openButton" left="0" right="0" top="0" bottom="0" focusEnabled="false"
  53. skinClass="spark.skins.spark.DropDownListButtonSkin" />
  54. <s:Label id="labelDisplay" verticalAlign="middle" lineBreak="explicit"
  55. mouseEnabled="false" mouseChildren="false"
  56. left="7" right="30" top="2" bottom="2" width="75" verticalCenter="1" />
  57.  
  58. </s:Skin>

样品申请

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <s:Application
  3. xmlns:fx="http://ns.adobe.com/mxml/2009"
  4. xmlns:s="library://ns.adobe.com/flex/spark"
  5. xmlns:mx="library://ns.adobe.com/flex/mx">
  6.  
  7. <fx:Style>
  8. @namespace mx "library://ns.adobe.com/flex/mx";
  9. @namespace s "library://ns.adobe.com/flex/spark";
  10.  
  11. s|DropDownList
  12. {
  13. skinClass: ClassReference("VariableHeightDropDownListSkin");
  14. }
  15. </fx:Style>
  16.  
  17. <s:DropDownList labelField="name" horizontalCenter="0" verticalCenter="0">
  18. <s:layout>
  19. <s:VerticalLayout requestedRowCount="7"/>
  20. </s:layout>
  21. <s:dataProvider>
  22. <mx:ArrayCollection>
  23. <fx:Object name="one"/>
  24. <fx:Object name="two"/>
  25. <fx:Object name="three"/>
  26. <fx:Object name="four"/>
  27. <fx:Object name="five"/>
  28. <fx:Object name="six"/>
  29. <fx:Object name="seven"/>
  30. </mx:ArrayCollection>
  31. </s:dataProvider>
  32. </s:DropDownList>
  33.  
  34. </s:Application>

让我知道,如果这有帮助,槊

猜你在找的Flex相关文章