代码之家  ›  专栏  ›  技术社区  ›  Paul Mignard

Flex-有没有办法指定组合框将打开的方向?

  •  0
  • Paul Mignard  · 技术社区  · 16 年前

    我是我的特殊情况-我需要它向上打开-始终。

    更新:无法通过子类化来解决此问题,因为处理洞口方向的函数是:

    private function displayDropdown(show:Boolean, trigger:Event = null):void
    

    那个坏男孩使用了大量的私有变量,我的子类无法访问这些变量。。。

    5 回复  |  直到 16 年前
        1
  •  2
  •   Mitch Haile    16 年前

    如果您自己构建菜单对象,只需设置菜单对象的x、y坐标,就可以将菜单放置在任意位置。您需要计算这些坐标,但您可能不需要子类化ComboBox就可以轻松地完成这项工作。

    我正在做类似于PopUpButton的事情;您可能会发现使用PopUpButton更容易。这是基于我当前项目中的真实代码:

    private function initMenu(): void {
        var m:Menu = new Menu();
        m.dataProvider = theMenuData;
        m.addEventListener(MenuEvent.ITEM_CLICK, menuClick);
        m.showRoot = false;
        // m.x = ... <-- probably don't need to tweak this.
        // m.y = ... <-- this is really the interesting one :-)
        theMenu.popUp = m;
    }
    <mx:PopUpButton id="theMenu" creationComplete="initMenu()" ... />
    

    顺便说一句,为了让弹出按钮更像我想要的那样(无论单击在哪里,总是弹出),在MXML中设置openAlways=true就像一个符咒。

        2
  •  0
  •   dkretz    16 年前

    那个 (没什么大不了的。)

        3
  •  0
  •   Dave DuPlantis    16 年前

    我建议退房 this post . 是的,您确实需要获取组合框代码并对其进行修改,但至少现在您已经知道了修改的方向。

        4
  •  0
  •   MemphiZ MemphiZ    15 年前

    您可以设置MaxDropDownHeight,如果设置得足够大,Windows将自动设置向上方向。

        5
  •  0
  •   newtriks    14 年前