我有使用列表的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));
我如何使这项工作?
答案 0 :(得分:0)
您可以通过单独或组合尝试这两种方式。
尝试在组件的构造函数中设置TextArea
的文本。我的意思是
TextArea caption = new TextArea(m.caption_text);
在构造函数中设置文本时,它通常可以正常工作。 TextArea
的大小应该调整大小。如果你不想使用它。您可以使用TextArea
和setRows()
创建setColumns()
并设置之后的行和列。我不知道为什么,但TextArea
调整大小不能很好地工作。
另一个建议是,可以尝试将布局设置为BorderLayout
,将图像设置在中心,将文本设置在南方吗?
答案 1 :(得分:0)
显然growByContent在ContainerList中不起作用。我最终不得不放弃ContainerList,而是使用Container组件。在这种情况下,growByContent工作正常。