【问题标题】:MapField Display problemMapField显示问题
【发布时间】:2010-05-07 06:46:36
【问题描述】:

我想在 Storm 上全屏显示 MapField,为此我使用 MapField.setPreferredSize(Display.getWidth,Display.getHeight)。但是,我没有看到尺寸为 320X480 的 MapField ,而是得到尺寸约为 320X280 的 MapField 和用黑色填充的剩余空间(480-280 = 200)。我有 Display.getWidth() 和 Display.getHeight(320 的交叉检查值,第480章)

【问题讨论】:

    标签: blackberry


    【解决方案1】:

    问题在于,在 Storm 上,Display.getWidth() 和 getHeight() 不会一直返回相同的东西——它们试图解释软键盘的存在(或不存在)。系统决定键盘是否存在的点是非常不合理的。 (暴风雨绝对烂透了,我猜你已经猜到了。)

    似乎可行的一种方法是在您的屏幕中子类 sublayout(width, height)。这将在 Storm 上被多次调用,因为系统会四处寻找正在发生的事情。所以这意味着更多的计算,但它有效。您在那里看到的最后一个值是正确的。

    这是一个粗略的模板。请记住,这是在您的类中扩展屏幕的。 (例如主屏幕)

    protected void sublayout(int width, int height) {
        super.sublayout(width, height);
        // the screen is acutally width X height
        // do your screen-specific stuff here
    }
    

    【讨论】:

      【解决方案2】:

      听起来您的应用程序正在兼容模式下运行。您可以使用 Application#isInTouchCompatibilityMode() 进行检查。 Touch Compatibility Mode 将 Storms 的可绘制区域固定为 320x240,就像您正在体验的那样。

      【讨论】:

      • 嗨 Fostah,感谢您的响应。不,我的应用程序没有在兼容模式下运行..实际上我的屏幕有三个组件,一个 Horizo​​ntalManager 包含一个 EditField 和一个按钮,然后我添加了一个 MapField 和然后又是一个包含两个按钮的 Horizo​​ntalManagers。我正在尝试在这两个水平管理器之间调整 MapField,但它的显示尺寸要小得多..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 2016-12-13
      • 2014-12-18
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多