LWUIT:列表中的多行TextArea。使用ContainerList无法解决

时间:2013-09-23 19:34:36

标签: java listview java-me lwuit

我有使用列表的j2me LWUIT应用程序。列表中的每个单元格都包含图像和文本区域。 TextArea不会增长。我在List中看到所有单元格必须是统一的大小,所以我应该使用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));

我如何使这项工作?

2 个答案:

答案 0 :(得分:0)

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

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

TextArea caption = new TextArea(m.caption_text);

在构造函数中设置文本时,它通常可以正常工作。 TextArea的大小应该调整大小。如果你不想使用它。您可以使用TextAreasetRows()创建setColumns()并设置之后的行和列。我不知道为什么,但TextArea调整大小不能很好地工作。

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

答案 1 :(得分:0)

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