Apache flex 按钮宽度中的额外像素 私有函数onSmallBtnClick():void{ hideBtn(btn1); hideBtn(btn2); hideBtn(btn3); showBtn(大按钮); } 私有函数showBtn(按钮:按钮):无效{ button.visible=true; button.includeInLayout=true; } 私有函数hideBtn(按钮:按钮):无效{ button.visible=false; button.includeInLayout=false; }

Apache flex 按钮宽度中的额外像素 私有函数onSmallBtnClick():void{ hideBtn(btn1); hideBtn(btn2); hideBtn(btn3); showBtn(大按钮); } 私有函数showBtn(按钮:按钮):无效{ button.visible=true; button.includeInLayout=true; } 私有函数hideBtn(按钮:按钮):无效{ button.visible=false; button.includeInLayout=false; },apache-flex,actionscript,flex4,flex3,flexbuilder,Apache Flex,Actionscript,Flex4,Flex3,Flexbuilder,大家好,在上面的Flex代码中,我的界面上有4个按钮。界面应以小按钮1、2、3可见和大按钮不可见开始。单击其中一个小按钮时,将显示大按钮,而不是3个小按钮。小按钮的宽度设置为18,而大按钮的宽度设置为72 我的问题是,大按钮的宽度不应该是54吗,因为18x3=54?或者按钮中有我应该知道的填充物吗?在这一页上,它说 默认情况下,Flex会拉伸按钮控件的宽度以适合控件的大小 它的标签,任何图标,加上图标周围6个像素的填充。你可以 通过显式设置“宽度”属性覆盖此默认宽度 将按钮控件的值设置为特定值或

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

我的问题是,大按钮的宽度不应该是54吗,因为18x3=54?或者按钮中有我应该知道的填充物吗?在这一页上,它说

默认情况下,Flex会拉伸按钮控件的宽度以适合控件的大小 它的标签,任何图标,加上图标周围6个像素的填充。你可以 通过显式设置“宽度”属性覆盖此默认宽度 将按钮控件的值设置为特定值或其值的百分比 父容器。如果指定百分比值,则按钮 在其最小宽度和最大宽度之间调整大小,作为其尺寸 父容器更改

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


谢谢。

一旦我看不到为按钮设置的
x
左侧
东西,我想您可以使用
HGroup
或任何其他带有
水平布局的容器。
它有一个名为
gap
的属性,默认情况下该属性为
6
。 但它不会增加18px,它会增加12px


尝试将所有按钮的
minWidth
设置为
0

谢谢您的回答!我确实在使用HGroup,但我不确定额外的6个像素是从哪里来的。所以我会等待一个更好的答案,然后才能接受。再次感谢!您是说hgroup的宽度默认为72?而不是54岁?
<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;
}