【问题标题】:Flex Dropdownlist itemrenderer issue?Flex Dropdownlist itemrenderer 问题?
【发布时间】:2023-03-11 07:50:01
【问题描述】:

我正在使用 Spark DropDownlist 组件。我想保持父组件的大小(显示所选项目的位置)很小,但是当用户尝试选择一个项目时,显示的框会显示我想要的选项要大,以便它包含所有元素,如果一个元素更大,那么它仍然适合父组件的大小,用户将不必进行水平滚动。 我尝试使用具有各种宽度的 itemrenderer,但它会在选项上带来水平滚动。如果我在父组件(即 s:dropdownlist)上禁用水平滚动,那么显示的选项将被截断,我的意思是某些文本没有显示。 您能否为此提出一个可能的解决方案?

【问题讨论】:

    标签: apache-flex drop-down-menu flex4 itemrenderer


    【解决方案1】:

    我自己修好了。

    基本上我为下拉列表创建了一个customskin,在自定义列表中我为PopupAnchor 组件指定了这个属性popupWidthMatchesAnchorWidth="false'。然后我创建了一个具有我需要的宽度的itemrenderer,它可以工作。

    注意:我为下拉列表创建了自定义皮肤,基于现有的 spark downdownlist 皮肤,只是修改了这个属性。

    【讨论】:

      【解决方案2】:

      我不知道这是否重要,但您可以像这样将您的解决方案放入公开活动中,

      <dropdown open="event.currentTarget.skin.popUp.popUpWidthMatchesAnchorWidth = false;"/>
      

      无需创建皮肤。如果您尝试在创建完成时调用它,则尚未创建弹出窗口,您将收到错误消息。我注意到下拉列表更新的地方有轻微的闪光。但这是一个调试版本,它非常轻微,以至于在发布版本中可能不会被注意到。

      附录:毕竟我正在使用皮肤,因为内容是动态变化的,它可以小于下拉菜单。所以我注意到当 popUpWidthMatchesAnchorWidth 设置为 false 时,弹出宽度默认为 140 或类似的值。为了解决这个问题,我为列表的宽度添加了一个绑定,因此弹出窗口将始终至少与列表一样宽,并在需要时变得更宽。为此,将 minWidth 属性添加到下拉皮肤中的下拉列表中,如下所示:

      <s:Group id="dropDown" maxHeight="184" minHeight="22" minWidth="{hostComponent.width}">
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-02
        • 2011-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-16
        相关资源
        最近更新 更多