【问题标题】:How is the size of the StatusBar (in the Toolbar) set?状态栏(在工具栏中)的大小是如何设置的?
【发布时间】:2021-03-23 13:18:44
【问题描述】:

在我的应用程序、iphone 以及模拟器上的 iPhoneX 皮肤中,StatusBar 的大小(在工具栏内)由于某种原因太小/太薄,因此表单的标题显示为部分隐藏iPhoneX 缺口。

我试图了解如何解决此问题,但我根本无法弄清楚 StatusBar 的大小是如何设置的。我没有在我的 css 文件和代码中更改 StatusBar UIID 的大小,但它比我使用 iPhoneX.skin 创建一个新的 Hello World 示例要小。

我最初认为可能是 SafeArea 改变了大小,但似乎并非如此。然后我认为默认主题(或css中默认UIID的值)可以改变大小,但似乎也不是这样。我可能错过了一些明显的东西,但我被困住了,所以任何帮助都将不胜感激。

PS。我当然可以自己在 css 中强制设置 StatusBar 的大小,但是我不确定它是否适用于各种设备,所以我更喜欢依赖 CN1 定义的默认值。

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    StatusBar UIID 在内部定义,通常硬编码为适合大多数主题的值。这在很大程度上取决于 Title UIID 中的填充,它通常很大并且与状态栏配合使用。假设您的标题有 0 填充,您可能需要更多的填充到 StatusBar

    假设您使用的是 CSS,您可以使用以下内容:

    @media platform-ios {
        StatusBar {
            padding: 7mm;
        }
    }
    

    【讨论】:

    • 谢谢。但是,我的问题实际上不是关于如何设置它,而是了解它如何/为什么在我的应用程序中更改为错误值。 StatusBar 的边距以某种方式更改为 2 并填充为 3(像素),我只是不知道它是如何/在哪里发生的。但是从您的回答中听起来,除了主题设置的值(我假设的 iOS7Theme.res 文件)之外,它不应该被 CN1 更改?我还检查了设计器中的 .res 文件,并且状态栏没有从其他任何东西派生。
    • 您使用的是 CSS 还是 Designer?您是否定义了可能会影响默认使用毫米作为单位类型的全局默认值?
    • 我使用 css。但我用 Designer 检查了 .res。我确实在 css 中定义了默认值,但它没有定义填充/边距。我不知道有一种方法可以将毫米的默认用法更改为单位类型,这会发生什么?
    • 基本 iOS 原生主题将默认值定义为毫米。我不认为这是可以改变的,但也许加载中存在导致主题部分加载的错误。您在控制台中看到什么了吗?
    • 我在输出日志中看不到任何明显的问题。我得到这个:“Retina Scale:2.0 使用有状态模式。使用 -help 标志查看新无状态模式的选项。更新合并文件 /Users/user/NetBeansProjects/myapp/target/css/theme.css.merged 编译 /Users/ user/NetBeansProjects/myapp/target/css/theme.css.merged 到 /Users/user/NetBeansProjects/myapp/src/theme.res 文件自上次编译以来没有改变。”我在代码中的某处发现样式初始化为我上面提到的相同的 2 和 3。有没有办法可以调试以了解主题样式的更改位置?
    猜你喜欢
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 2015-11-29
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多