Codenameone 弹出对话框样式设置中的问题

Codenameone 弹出对话框样式设置中的问题,codenameone,Codenameone,我正在广泛使用Dialog的showPopupDialog(…)功能,它工作得很好。我记得过去它在Android上不工作,或者在Android上有问题,但现在它在Android上工作得很好 但是我有一个Android的风格问题。基本上,我希望在对话框中间有一个组件。这是最简单的情况,有时我会在南侧添加按钮。然而,在这两种情况下,我只能在iOS上将对话框弹出窗口的内容完全放在中心位置,而在Android上则存在问题 这是我当前的CSS: @media platform-and { Popu

我正在广泛使用Dialog的
showPopupDialog(…)
功能,它工作得很好。我记得过去它在Android上不工作,或者在Android上有问题,但现在它在Android上工作得很好

但是我有一个Android的风格问题。基本上,我希望在对话框中间有一个组件。这是最简单的情况,有时我会在南侧添加按钮。然而,在这两种情况下,我只能在iOS上将对话框弹出窗口的内容完全放在中心位置,而在Android上则存在问题

这是我当前的CSS:

@media platform-and {
    PopupContentPane {
        margin: 0px;
        padding: 1.5mm;
        padding-bottom: 3.0mm;
    }
}

@media platform-ios { 
    PopupContentPane {
        margin: 0px;
        padding: 1.5mm;
        padding-top: 0px;
    }
}
iOS和Android之间的主要区别在于,虽然iOS可以正确使用此CSS,但在Android上,无论箭头是向上还是向下,都可以获得与iOS相同的结果,但我需要这样制作的CSS:

@media platform-and {
    PopupContentPane-ArrowTop {
        margin: 0px;
        padding: 1.5mm;
    }
    
    PopupContentPane-ArrowBottom {
        margin: 0px;
        padding: 1.5mm;
        padding-bottom: 3.0mm;
    }
}
或者类似的东西(再做一些调整)

所以,在Android上,当箭头在底部时,我需要一个额外的填充底部。这就是全部,但这是不可能的,因为当箭头位于顶部时,PopupContentPane当前没有UUID,而当箭头位于底部时,则没有另一个UUID

有什么想法或解决办法吗?多谢各位


(我补充说,到目前为止,这是我唯一需要使用CSS的@media标记来区分iOS样式和Android样式的情况。)

最初,当我们编写弹出对话框时,它是iOS唯一的功能,因为样式仅在iOS上。我们使用了一个9块的图像边框来弹出,我们不想在每一个本机主题中都复制这个主题元素,所以我们把它留给了开发人员

后来,我们发明了在
RoundRectBorder
上显示箭头的功能。另一个优势是在iOS/Android上采用了平板设计,将以前复杂的对话框样式变成了一个简单的纯白弹出窗口。所以我们用白色实现了这个跨平台。但由于iOS具有预先存在的图像边框,因此它仍然在iOS上使用,并且没有被删除。我们可能应该删除它,并处理出现的次要兼容性问题

我最近在
InteractionDialog
中对此进行了研究:


对话框
执行类似操作可能是有意义的,因为该对话框似乎没有该代码:

您将同一链接放置了两次。无论如何,我尝试了InteractionDialog而不是Dialog,但没有看到任何好处:中心组件居中问题是相同的。正如我在问题中指出的那样,根据箭头的位置提供不同的UUID的想法不可行吗?显然不会破坏现有代码的功能。我承诺解决此问题: