如何增加列表字段的所选项的行高

时间:2011-08-24 11:33:16

标签: blackberry listfield

我在我的应用中使用ListField来显示列表中的数据。现在我的要求是我想增加列表中所选项目的行高。

为此,我创建了一个GridFieldManager并使用此管理器填充了我的列表。然后我覆盖此管理器的onFocus()方法。但是,从不调用此方法。因此,我无法增加所选行项的高度。

请帮忙。

3 个答案:

答案 0 :(得分:2)

ListField行都设计为大小均匀,因此很遗憾,您将无法直接更改一行的大小。您可以通过设置它来模拟它,以便上方和下方的行分别在底部和顶部绘制一点焦点颜色。或者,您可以让一个字段在任何聚焦的行上方保持居中。然后使用所选行中的信息重绘此“浮动字段”。

答案 1 :(得分:0)

我得到了它的工作。我伪造了ListField实现。我删除了ListField并将其替换为VerticalFieldManager。我在onfocus()onUnfocus()期间调整了尺寸,并使用sublayout()更改了此经理的身高。它按照我想要的方式工作。

答案 2 :(得分:0)

you can increase the row height/font text/...
as ultimately, all of the api's call canvas's paint methods

how to do:
//try playing with the font_type,font height
Font myFont = Font.getDefault().derive(Font.PLAIN, 14, Ui.UNITS_px);

 private class ListCallback implements ListFieldCallback {

public void drawListRow(ListField list, Graphics g, int index, int y, int w) {
                g.setFont(myFont);
                String text = (String)listElements.elementAt(index);
                g.drawText(text, 0, y, 0, w);
//you can increase the height of a particular row in the height parameter.
// if you want it to be specific, put an 'if conditon'
EX: if(index=1)
{
w+=10;
}
            }
}