我正在创建具有可变大小的自定义Codenameone组件。该组件显示固定数量的文本,跨越多行。因此宽度和高度是相关的。如果宽度较小,则文本适合一行,并且需要更多行。我已设法设置首选宽度和首选高度。麻烦的是,当实际的绘画发生时,宽度显然是由图形对象graphics.getClipWidth()
给出的,并且不符合我的首选宽度。因此,我的首选高度(在绘画时看起来等于graphics.getClipHeight()
)不正确,因为剪辑宽度不等于我的首选宽度,该宽度用于计算首选高度。我怎样才能得到graphics.getClipHeight()
有正确的身高?换句话说,是否可以使用组件在渲染时实际具有的宽度来指定组件的高度?根据实际的Codenameone的组件宽度计算首选高度
祝 马克ķ
感谢您的快速回复。根据getWidth()是否被设置(即返回一个不等于0的值),getPreferredH()会返回不同的值吗?它似乎在BoxLayout-Y中工作。另一种方法是使用屏幕宽度来估计高度 - 听起来很脆弱。 –
这不是正确的工作方式。你通常应该重载calcPreferredSize(),在这种情况下,它应该返回不同的值。 –
好吧,我会尝试一下。 –