是否可以根据以下设计自定义Objectfieldlist?
----------------------------
ROW#1 ROW NAME
row details
---------------------------
ROW#2 ROW NAME
row details
---------------------------
ROW#3 ROW NAME
row details
---------------------------
行名称将以比行详细信息更大的字体
基本上我在ObjectListField的一行中需要2个文本行。**或任何其他方法或建议,因为我可能是错的,**请指导我它的紧急,并且是Blackberry Development的新功能。
答案 0 :(得分:5)
ObjectListField
实际上并不是正确的方法 - 当你需要一个简单的字符串列表时,它真的被设计为ListField
的快速版本。
您应该扩展ListField
本身,并提供自己的ListFieldCallback
实现,根据您的数据模型呈现您的列表。使用ListField.setCallback
设置回调。
ListFieldCallback.drawListRow
为您提供Graphics
上下文,因此您可以绘制任何内容,包括多行文字。另外,请确保在列表字段上调用ListField.setRowHeight
以使行足够高以容纳2行文本(默认高度为字体高度,因此您只有1行文本空间)。
示例代码类似于(这不完整,如果没有其他代码则无法编译):
ListField myListField = new ListField();
myListField.setRowHeight(getFont().getHeight() * 2)
myListField.setCallback(new ListFieldCallback() {
public void drawListRow(ListField listField, Graphics graphics, int index, int y, int width) {
// draw the first line of text
graphics.drawText(0, y, "ROW " + rowNumber);
graphics.drawText(20, y, "ROW NAME");
graphics.drawText(20, y + getFont().getHeight(), "row details");
}