是否可以根据以下设计自定义ObjectFieldList?

         ----------------------------
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 给你一个 Graphics 上下文,因此您可以绘制任何想要的内容,包括多行文本。还请确保致电 ListField.setRowHeight 在您的ListField上,将行足够高到足够高,以实现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"); 
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top