如何解决BlackBerry将LabelField垂直居中放置自定义高度
| 我有一个嵌套在TableLayoutManager行内的LabelField。我希望该行为特定的高度(与其位图背景相同的高度)。为了实现这一点,我更改了嵌套LabelField的layout()方法:LabelField lblHours = new LabelField(hours,Color.BLACK,Manager.FIELD_VCENTER) {
protected void layout(int width,int height) {
super.layout(width,40 //height of the bitmap);
setExtent(width,40 //height of the bitmap);
}
};
这成功增加了TableLayoutManager的行大小。但是,一旦执行此操作,LabelField将不再在行内垂直居中。有什么建议吗?
谢谢!
解决方法
上面的答案有效,只是确保您为上述内容输入了两个语句,如以下示例所示。
LabelField importanceLabel = new LabelField(\"Importance: \",LabelField.FIELD_VCENTER | LabelField.FIELD_RIGHT) {
public void paint(Graphics g) {
g.setColor(0x145085);
super.paint(g);
}
protected void layout(int width,int height) {
super.layout(Math.min(width,this.getFont().getAdvance(this.getText())),26); //height of the bitmap);
setExtent(Math.min(width,26); //height of the bitmap);
}
};
这将是相同的答复..谢谢你们..的讨论。它帮助了我。
,尝试将setExtent(width,40)
更改为setExtent(this.getWidth(),40)
。如果getWidth()试图占用所有可用宽度(这是您的setExtent()调用所做的事情),这可能无法工作,并且由于文本将以左对齐的方式绘制,因此您的字段看起来像是\并非居中,但实际上,它只是占据了桌子的整个单元格。或者,如果这不起作用,您可能可以做setExtent(Math.min(width,40);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。