0
<s:Button id="btn1" label="1" width="18" includeInLayout="true" visible="true" click="onSmallBtnClick();" />
<s:Button id ="btn2" label="2" width="18" includeInLayout="true" visible="true" click="onSmallBtnClick();" />
<s:Button id ="btn3" label="3" width="18" includeInLayout="true" visible="true" click="onSmallBtnClick();" />
<s:Button id="bigButton" label="bigButton" width="72" includeInLayout="false" visible="false" />

private function onSmallBtnClick():void {
    hideBtn(btn1);
    hideBtn(btn2);
    hideBtn(btn3);
    showBtn(bigButton);
}

private function showBtn(button:Button):void {
    button.visible = true;
    button.includeInLayout = true;
}

private function hideBtn(button:Button):void {
    button.visible = false;
    button.includeInLayout = false;
}

大家好,在上面的 Flex 代码中,我的界面上有 4 个四个按钮。界面应以可见的小按钮 1、2、3 和不可见的大按钮开始。单击任一小按钮时,大按钮将代替 3 个小按钮出现。小按钮的宽度设置为 18,而大按钮的宽度设置为 72。

我的问题是,bigButton 的宽度不应该是 54,因为 18x3 = 54?或者按钮中是否有一些我应该知道的填充?在这个实时文档页面中,它说..

默认情况下,Flex 会拉伸 Button 控件的宽度以适合其标签、任何图标的大小以及图标周围的 6 像素内边距。您可以通过将 Button 控件的 width 属性显式设置为特定值或其父容器的百分比来覆盖此默认宽度。如果您指定百分比值,则按钮会随着其父容器大小的变化而在其最小宽度和最大宽度之间调整大小。

这可能是问题吗?因为我有 3 个按钮,并且图标周围的填充占用 6x3 = 18 像素。按钮之间似乎没有任何间隙。所以我很想知道额外的 18 个像素是从哪里来的。

谢谢。

4

1 回答 1

1

一旦我没有看到为按钮设置的任何x东西left,我猜你会使用类似的东西HGroup或任何其他容器HorizontalLayout。它有一个名为 的属性,默认情况下gap是这个属性6。但它不会添加 18px,它会添加 12px ......

尝试为所有按钮设置minWidth为。0

于 2013-05-27T05:55:27.010 回答