【发布时间】:2017-11-21 11:18:33
【问题描述】:
我有一个图标按钮,带有一个小方形图标。
按钮嵌入在 BoxLayout 中。
有没有办法减小按钮的大小,以便自动达到图标的确切大小?
我的意思是,我知道我可以更改按钮的大小编辑边距和填充,但我想问是否可以根据嵌入在按钮中的图标的大小自动更改它。
【问题讨论】:
标签: ios button icons codenameone
我有一个图标按钮,带有一个小方形图标。
按钮嵌入在 BoxLayout 中。
有没有办法减小按钮的大小,以便自动达到图标的确切大小?
我的意思是,我知道我可以更改按钮的大小编辑边距和填充,但我想问是否可以根据嵌入在按钮中的图标的大小自动更改它。
【问题讨论】:
标签: ios button icons codenameone
Layouts in Codename One 根据组件的首选大小和它们自己的逻辑来确定大小。 BoxLayout 总是缩放组件以占用相反轴上的可用空间,这意味着框 Y 布局上的按钮将占据整个可用宽度。
所以:
Button b = ...;
boxYContainer.add(b);
按钮将占据整个宽度。
FlowLayout 为组件提供其首选大小,这对于确定性组件非常有用,而对于其他组件则不是很好,例如这对TextArea 不利,其中内容可以根据文本重排更改首选大小。
所以这样的事情会将按钮放置在中心的首选大小:
Button b = ...;
boxYContainer.add(FlowLayout.encloseCenter(b));
注意这是以下的简写语法:
Button b = ...;
Container flowLayoutContainer = new Container(new FlowLayout(Component.CENTER));
flowLayoutContainer.add(b);
boxYContainer.add(flowLayoutContainer);
【讨论】: