代码之家  ›  专栏  ›  技术社区  ›  invertedSpear

如何调整组合框和组合框的下拉列表的大小?

  •  0
  • invertedSpear  · 技术社区  · 14 年前


    我正在做一些UI工作,允许用户通过编程在画布上添加和调整控件的大小。

    问题:
    当通过调整组合框的大小时,下拉框的宽度与第一次下拉时的宽度相同。所以用户在页面上放置组合框,单击向下箭头,查看选项,选择一个选项或再次单击向下箭头关闭,调整下拉框的宽度,单击向下箭头。现在下拉列表的宽度与原来的相同。 我试过一些简单的方法,比如专门设置下拉列表的宽度和使显示列表无效,但仍然不起作用。

    例子:
    代码示例挂起

    3 回复  |  直到 14 年前
        1
  •  0
  •   invertedSpear    14 年前

    当我把代码精简成一个例子的时候,我解决了我的问题。组合框具有dropdownWidth属性。我正试着设置这个 myComboBox.dropdownWidth = newWidth ,这不起作用(不完全清楚原因,没有深入研究SDK)。但是如果我把代码改成 myComboBox.dropdown.width = newWidth 它实际上会转到下拉元素,并直接重新调整大小,这确实有效。

        2
  •  0
  •   user1680003    11 年前

    comboBox.dropdown.percentWidth=100;

        3
  •  0
  •   Mr. Polywhirl    11 年前

    在组合框中,重写 set dataProvider collectionChange 事件。

    ComboBox.calculatePreferredSizeFromData(count:int):Object

    override public function set dataProvider(value:Object):void {
        super.dataProvider = value;
    
        var size:Object = calculatePreferredSizeFromData(dataProvider.length);
    
        this.dropdownWidth = size.width;
        this.dropdown.width = this.dropdownWidth;
        this.invalidateSize();
    }