【问题标题】:How can I achieve this kind of List in BlackBerry?如何在黑莓中实现这种列表?
【发布时间】:2012-03-14 06:48:26
【问题描述】:

我正在为 BlackBerry(OS 6.0+)制作我的第一个应用程序,我必须定义一个如下图所示的屏幕。我已经阅读了有关RichList 的信息,但不允许将其添加到其他组件下方。

我想要的是宽 ButtonField 下方的部分(列表)。白框应包含图像,其前面的涂鸦应包含文本。此“列表项”是动态填充的。

如您所见,这非常类似于 RichList 的布局,但我似乎无法将其添加到我用作组件主容器的 VerticalFieldManager 中。

所以如果有人能帮我弄到这个屏幕,我真的很感激!提前致谢。

【问题讨论】:

  • 使用ListField怎么样?你可以查看这个答案:stackoverflow.com/a/1881319/431639
  • @Rupak 我检查了它.. 但是有什么有效的方法吗? ('因为这个应用程序可能有大量的行)。如果我没有得到满意的答案,那么我会下定决心这样做。
  • 不确定在大型列表的情况下的效率,但它比使用包含行项目的自定义VerticalFieldManager 更高效和有效。此外,还可以使用当前选定的行信息使用新项目填充列表并从列表中动态删除项目。所以我认为这可以与一些动态数据擦除/添加一起使用。
  • @Rupak 好的,感谢您的链接和提示。Ravi 的回答也很好,所以我会检查他们两个。但我会选择 Ravi 的答案作为正确答案。

标签: layout blackberry java-me software-design


【解决方案1】:

您需要实现 ListFieldCallback 并覆盖所有方法。在那里你会看到“drawListRow”方法。您需要在左侧绘制图像并在此方法索引上写入文本。像这样:-

    ListData ld = (ListData) rows.elementAt(index);

             g.drawText(ld.name,  30+extraSpaceDelete, y
            + (listItemHeight - g.getFont().getHeight()) / 2);

    g.drawText(ld.address,  30+extraSpaceDelete, (y
            + (listItemHeight - g.getFont().getHeight()) / 2)+(g.getFont().getAscent()+10));

    g.drawBitmap(0, y + listItemH - 3, Display.getWidth(), 3,
            separator_line, 0, 0);

【讨论】:

  • 感谢您的回答!现在我有一个想法如何做到这一点.. :)
猜你喜欢
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多