【问题标题】:Flex LinkBar: how to set a selected button's background color?Flex LinkBar:如何设置选定按钮的背景颜色?
【发布时间】:2009-11-13 21:32:16
【问题描述】:

我能够通过 LinkBar 的“disabledColor”样式设置选定 LinkBar 按钮的文本颜色。因此,我希望通过“backgroundDisabledColor”样式设置所选按钮的背景颜色,但是,它不起作用;除了“backgroundDisabledColor”之外,我没有看到任何其他可能实现这一点的样式。请帮忙。谢谢。

【问题讨论】:

    标签: apache-flex flex3


    【解决方案1】:

    问题可能是您在 LinkBar 本身上设置样式 - 尝试将 LinkBar 的 linkBut​​tonStyleName 样式设置为包含按钮所需的所有样式的不同样式选择器。您应该可以在那里设置按钮本身的 fillColors 样式 - 这将更改按钮的默认外观。

    如果您需要调整“选定”颜色,或者如果您需要更高级的东西,而不仅仅是为按钮背景设置皮肤,您需要编写一个自定义皮肤类。这并不太难 - Button 类具有一整套“Selected”样式 - selectedDownSkin、selectedUpSkin、selectedDisabledSkin 等。IMO 的最佳做法是将您的按钮皮肤设置为自定义皮肤类,该类基于不同的个人样式设置关于状态。

    David Flately 说明了这种方法here。查看他的消息来源 - 这应该可以满足您的需求。 Juan Sanchez 和 Andy McIntosh 的用 Flex 3.0 创建视觉体验是一本关于这个主题的好书,其中包含此类内容以及许多其他示例。我无法发布指向它的链接,因为我在这里的声誉还不够高,但你可以在亚马逊或巴恩斯和贵族或任何其他在线书店找到它。

    【讨论】:

    • 非常感谢。通过该链接,编写程序化皮肤并修复背景颜色相当容易。就我而言,我只需要考虑 3 种皮肤:disabledSkin、overSkin 和 skin。我注意到一件事 - LinkBut​​ton 的选定样式和禁用样式似乎是相同的,因为 disabledSkin 是我选择 LinkBar 时使用的皮肤。因此,将没有视觉方式来区分选定按钮和禁用按钮。有什么想法吗?
    • 是的 - 在您的皮肤类中,您可能需要将禁用和选定的皮肤分成两个不同的实现,即使默认以相同的方式显示它们。
    • 这似乎不值得额外的工作 - 如果需要的话,最好手动执行“LinkBar”。
    【解决方案2】:

    【讨论】:

    • 即使一个链接有最好的答案,你仍然应该解释它并给 OP 一个适当的回应。
    【解决方案3】:

    哈哈,正在找同样的东西,可以看LinkBar的源码:

        // Hilite the new selection.
        child = Button(getChildAt(selectedIndex));
        child.enabled = false;
    

    这很聪明!他们没有将 selected 设置为 true,而是禁用了选定的按钮……为什么不;-( 花了我半个小时来理解 Flex 团队的逻辑……

    eBuildy,弹性专家

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-13
      • 1970-01-01
      • 2019-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多