从一个特定的代码表单中移除TitleArea



我有一个闪屏和登录表单,需要全屏显示,没有任何工具/菜单/标题栏。这个表单显示在屏幕顶部附近有一个栏,我认为这是TitleArea。

该场景与https://groups.google.com/forum/#!主题/codenameone-discussions/2 sgvfnyu9rk

在讨论中,Shai建议将TitleArea uid透明度设置为0。因为我只希望标题区域在这些特定的表单上是不可见的,我创建了一个新的UIID titlearetransparent,背景透明度为0,并实例化SplashScreen表单如下:

    SplashScreen f = new SplashScreen(theme);
    Container tArea = f.getTitleArea();
    tArea.setUIID("TitleAreaTransparent");
    f.show();

这确实使条消失了,但是我有两个问题。

1)尽管TitleArea是透明的,但它仍然占用了窗体上的一些空间。在这种特殊情况下,这并不重要,但在其他情况下,我可能需要使用整个屏幕,我想简单地完全消除该组件。正确的做法是什么?

2) javadoc说getTitleArea()已弃用,但有一些替代方案,如命令行为(通过显示或主题常量)我做了一些挖掘,无法找到任何阐明如何做我需要做的事情。改变TitleArea组件的UIID的正确方法是什么?

在这种方法中,getTitleArea()仍然是必不可少的。如果你没有设置标题,标题区域应该是0,但状态栏仍然会占用空间,因为它将UI向下推,所以它不会在iOS状态栏区域下呈现。

您可以通过全局样式化StatusBar UIID(不推荐)或通过在Form子类中这样做来禁用它:

@Override
protected Component createStatusBar() {
    Component c = super.createStatusBar();
    c.getUnselectedStyle().setPadding(0, 0, 0, 0);
    return c;
}

最新更新