Listview 如何自定义ObjectListField?
是否可以根据以下设计自定义ObjectfieldlistListview 如何自定义ObjectListField?,listview,blackberry,blackberry-eclipse-plugin,Listview,Blackberry,Blackberry Eclipse Plugin,是否可以根据以下设计自定义Objectfieldlist ---------------------------- ROW#1 ROW NAME row details --------------------------- ROW#2 ROW NAME row details --------------------------- ROW#3 ROW NAME ro
----------------------------
ROW#1 ROW NAME
row details
---------------------------
ROW#2 ROW NAME
row details
---------------------------
ROW#3 ROW NAME
row details
---------------------------
行名称的字体将大于行详细信息
基本上,我需要在ObjectListField.**或任何其他方法或建议的行中包含2个文本行,因为我可能错了,**请告诉我它的紧迫性,我是黑莓开发的新手。
ObjectListField
并不是这样做的正确方法-它实际上是作为ListField
的快速版本设计的,适用于那些只需要简单字符串列表的时候
您应该扩展ListField
本身,并提供自己的ListFieldCallback
实现,该实现基于数据模型呈现列表。使用ListField.setCallback
设置回调
ListFieldCallback.drawListRow
为您提供了一个图形
上下文,因此您可以绘制任意内容,包括多行文本。还要确保在列表字段上调用ListField.setRowHeight
,使行足够高,可以容纳两行文本(默认高度是字体高度,因此只能容纳一行文本)
示例代码类似于(这是不完整的,没有其他代码就无法编译):
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");
}