【问题标题】:Codename One: User interface layout on simulator and a real Android device are complete different代号一:模拟器上的用户界面布局和真正的Android设备完全不同
【发布时间】:2017-03-20 13:05:41
【问题描述】:

嗯,这是我第一次在真正的 Android 设备上测试我的应用。用户界面布局与模拟器截然不同。请看图片:

代码相同,没有任何修改。

Android 版本为 5.1.1。

显示屏幕的代码是:

    private final void show() {
    loginSignupForm = new Form(null, new BorderLayout());
    Tabs loginSignupTabs = new Tabs();
    Image splashScreenImage = theme.getImage("Starlent_logo25x25.png");
    ((Label) loginSignupForm.getToolbar().getTitleComponent()).setIcon(splashScreenImage);
    Style loginSignupStyle = UIManager.getInstance().getComponentStyle("Tab");
    prepareAndAddSignupTab(loginSignupTabs, loginSignupStyle);
    prepareAndAddLoginTab(loginSignupTabs, loginSignupStyle);
    loginSignupForm.add(BorderLayout.CENTER, loginSignupTabs);
    loginSignupForm.show();
}

那么,我如何管理或期望布局在不同的设备中?

至少,我希望将徽标放在 Android 设备的中心。我该怎么做?

【问题讨论】:

  • 您好,在“新项目”创建阶段,您是否选择了“原生主题”模板?您使用的主题似乎适应设备的操作系统平台。因此模拟器有 iOS 设备和 iOS 主题,Android 设备有 Android 原生主题,因此布局不同(这些是默认的操作系统标准)。您可以覆盖所有这些设置。最快的方法是通过打开资源编辑器 (theme.res) 文件来使用不同的主题。并添加现有的红色、蓝色或商务主题。
  • 是的,我确实特意选择了原生主题。所以,换句话说,我得让它适应平台的默认主题。将徽标居中怎么样?如果我可以将徽标居中,那就没问题了(假设我的其他屏幕上没有更多惊喜)。
  • 模拟器好像是iPhone,真机截图是安卓。是差异的原因吗?我可能错了。

标签: codenameone


【解决方案1】:

您正在使用本机主题,如果您安装了 Android 皮肤,您将看到该主题在模拟器上的行为也是如此,因为这是故意的。

您的主题和代码可以覆盖特定于平台的行为以产生相同的结果,例如覆盖选项卡位置等。如果选项卡位于底部,则该应用在 Android 上的感觉不会是原生的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 2018-04-13
    • 2017-09-15
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    相关资源
    最近更新 更多