У меня есть пользовательский контейнер (пузырь чата), который содержит SpanLabel
. Контейнер, очевидно, растет вместе с SpanLabel
. Затем я хочу добавить небольшую метку в правом нижнем углу контейнера (отметку времени), используя
LayeredLayout.encloseIn(this, FlowLayout.encloseRightBottom(timeStampLabel));
.
Я следовал примеру, показанному в https://www.codenameone.com/javadoc/com/codename1/ui/layouts/LayeredLayout.html
Это позволяет установить метку времени справа, но не внизу. Я подозреваю, что это может иметь какое-то отношение к SpanLabel
вычислению его высоты? Я вставлю свой код внизу. Спасибо!
public class ChatBubble extends Container {
String _timestamp;
public ChatBubble(Boolean left, String text, String timestamp)
{
_timestamp = timestamp;
if(left)
this.setUIID("ChatLeft");
else
this.setUIID("ChatRight");
this.add(new SpanLabel(text+" "));
}
public Container getBubble()
{
Font smallSystemFont = Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL);
Label timeStampLabel = new Label(_timestamp);
timeStampLabel.getAllStyles().setFgColor(0x888888);
timeStampLabel.getAllStyles().setFont(smallSystemFont);
return LayeredLayout.encloseIn(this,
FlowLayout.encloseRightBottom(timeStampLabel));
}
}
...
ChatBubble bubble4 = new ChatBubble(false,"This is a very long stringThis is a very long stringThis is a very long stringThis is a very long stringThis is a very long string","11:42");
boxCenter.add(bubble4.getBubble());