<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开头,bigButton不可见。单击任一小按钮时,bigButton将出现在3个小按钮的位置。小按钮的宽度设置为18,而bigButton宽度设置为72。
我的问题是,bigButton的宽度不应该是54,因为18x3 = 54?或者我应该知道按钮内是否有一些填充物?在这个live docs页面中,它说..
默认情况下,Flex会拉伸Button控件的宽度以适合大小 它的标签,任何图标,以及图标周围 6个像素的填充。您可以 通过显式设置width属性来覆盖此默认宽度 Button控件对特定值或其百分比的控制 父容器。如果指定百分比值,则按钮 在其最小和最大宽度之间调整大小 父容器更改。
这可能是问题吗?由于我有3个按钮,图标周围的填充占用6x3 = 18像素。按钮似乎没有任何差距。所以我很想知道额外的18个像素来自哪里。
感谢。
答案 0 :(得分:1)
一旦我没有看到为按钮设置的任何x
或left
内容,我猜您使用HGroup
或任何其他容器HorizontalLayout
。
它有一个名为gap
的属性,默认情况下此属性为6
。
但它不会增加18px,它会增加12px ......
尝试为所有按钮设置minWidth
至0
。