代号一刷新对话框

Codename One refresh dialog

我有一个 Android 应用程序,我想在其中刷新打开的对话框的布局。

对话框有一个容器,里面有一个按钮和一个标签,当对话框打开时,我想通过按钮操作更改标签内的文本和容器在屏幕上的位置。

标签内的文字发生变化,但容器的位置没有变化。有什么办法可以做到这一点?

非常感谢...这是我的代码:

Button buttonDialog = new Button("Yes");
Container container = new Container (new BorderLayout ());
SpanLabel spanLabel = new SpanLabel("One");
Dialog dialogStart = new Dialog("Button", new BoxLayout (BoxLayout.Y_Axis));

dialogStart.getTitleStyle().setFgColor(0xcccccc);
dialogStart.getTitleStyle().setBorder(Border.createEmpty());
dialogStart.getTitleStyle().setFont(Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_LARGE));
dialogStart.setDisposeWhenPointerOutOfBounds(false);
dialogStart.setScrollable(false);
dialogStart.setScrollVisible(false);
dialogStart.setLayout(new BorderLayout());

container.add(BorderLayout.CENTER, spanLabel);
container.add(BorderLayout.SOUTH, buttonDialog);

dialogStart.add(dialogStart);

buttonDialog.addActionListener(l->{

    spanLabel.setText("Two");
    containerDialog.getAllStyles().setMargin(1000,100,500,150);  // does not work 
    dialog.repaint();                 // does not work 
    dialog.refreshTheme();            // does not work      
});

删除所有这些黑客。使用专为此用例构建的 growOrShrink()

如果您需要对话框精确size/location。只需禁用对话框过渡动画(设置为空而不是 null)并处理它。然后显示一个没有 "in" 动画的新对话框。