0

我有使用列表的 j2me LWUIT 应用程序。列表中的每个单元格都包含一个图像和一个文本区域。TextArea 不会增长。我读到在列表中所有单元格必须是统一大小,所以我应该使用 ContainerList。

使用 ContainerList 我遇到了同样的问题!我的 TextAreas 不会增长。这里是我创建 TextArea 的地方:

    TextArea caption = new TextArea();
    caption.getStyle().setBgTransparency(255);
    caption.getStyle().setBgColor(0x060507);
    caption.getStyle().setBorder(null);
    caption.getStyle().setFgColor(0xf0f0f0);
    caption.getStyle().setFont(Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
    caption.getStyle().setMargin(0,10,10,10);

    caption.setText(m.caption_text);
    caption.setGrowByContent(true);
    caption.setSingleLineTextArea(false);
    cellCon.addComponent(caption);

cellCon 是一个垂直的 BoxLayout。即使我删除图像,它们仍然不会扩展。如果我将 cellCon 更改为使用 BorderLayout 并将图像 NORTH 和 TextArea SOUTH 放置,TextArea 确实会扩展,但会与图像重叠(好像它仍在尝试保持统一的高度)。

我正在创建这样的 ContainerList:

list = new ContainerList(new BoxLayout(BoxLayout.Y_AXIS),new DefaultListModel(data));

我该如何进行这项工作?

4

2 回答 2

0

您可以通过单独或组合尝试这两种方式。

尝试TextArea在组件的构造函数中设置文本。我是说

TextArea caption = new TextArea(m.caption_text);

当您在构造函数中设置文本时,它通常可以正常工作。调整大小的TextArea大小。如果你不想用这个。您可以使用 和 来创建TextArea和设置行和setRows()setColumns()。我不知道为什么,但是 TextArea调整大小的效果不是很好。

另一个建议是,您可以尝试将布局设置为BorderLayout,将图像设置在中心,将文本设置在南吗?

于 2013-09-24T07:38:10.473 回答
0

显然,growByContent 在 ContainerList 中不起作用。我最终不得不放弃 ContainerList,而是使用组件容器。在这种情况下,growByContent 可以正常工作。

于 2013-10-22T16:29:37.930 回答