【问题标题】:Blackberry fieldManager issue 8900 vs. 9550黑莓 fieldManager 问题 8900 与 9550
【发布时间】:2011-12-27 23:47:06
【问题描述】:

按下并关闭一个新屏幕后,我的按钮组有点向右移动。

我在 VerticalFieldManager 中添加了一些按钮。然后我在 Horizo​​ntalFieldManager 上添加了 verticalFieldManager 以使按钮居中。

问题出在 BB 8900(曲线)上,一切正常。在 9550(触摸屏)上,它仅在我第一次打开屏幕时才起作用。但是,如果我基于此屏幕打开另一个屏幕并关闭打开的屏幕,则按钮将向右移动。但仅在 9550 上???在曲线上,我可以打开一个新屏幕并关闭新屏幕,看起来应该如此。有人知道这个问题吗?

VerticalFieldManager verticalFieldMng = new VerticalFieldManager();      
            ButtonField btnSendAdrViaSMS = new ButtonField("test");
            verticalFieldMng2.add(btnSendAdrViaSMS);
            ButtonField btn2 = new ButtonField("test2");
            verticalFieldMng2.add(btn2);
            ButtonField btn3 = new ButtonField("test2");
            verticalFieldMng2.add(btn3);

            HorizontalFieldManager horizontalFieldManager = new HorizontalFieldManager(HorizontalFieldManager.FIELD_HCENTER);
            horizontalFieldManager.add(verticalFieldMng2);
            add(horizontalFieldManager);

为了打开新屏幕,我使用

    Screen_SendSMS sendSMS = new Screen_SendSMS("",link);
UiApplication.getUiApplication().pushModalScreen(sendSMS);

为了关闭屏幕,我使用 BB 设备的常规“返回键”而不覆盖它。

【问题讨论】:

  • 获取 hfm 中的按钮并将其添加到 HFM。

标签: layout blackberry blackberry-storm curve fieldmanager


【解决方案1】:

这很奇怪,但在 BB 中并不让我感到惊讶。

更新:在查看了我的一些代码以使事物居中之后,我可以说 Horizo​​ntalFieldManager,由于我猜想是滚动,使字段居中存在问题。因此,当我需要水平居中时,我使用 VerticalFieldManager,而当我必须垂直居中时,我使用 Horizo​​ntalFieldManager。

居中字段的基本模式是这样的:

    VerticalFieldManager vfm = new VerticalFieldManager(Manager.USE_ALL_WIDTH);
    Field toCenter = new <Field>(DrawStyle.HCENTER | Field.FIELD_HCENTER );
    vfm.add(toCenter);

在垂直方向上,它会是:

    HorizontalFieldManager hfm = new HorizontalFieldManager(Manager.USE_ALL_HEIGHT);
    Field toCenter = new <Field>(DrawStyle.VCENTER | Field.FIELD_VCENTER );
    hfm.add(toCenter);

您可以使用算术或运算符将标志与其他样式标志组合。

在您的情况下,您必须这样做两次:首先使用按钮和 vfm,然后使用 vfm 和 hfm。

【讨论】:

  • 你有 gridManager 的例子吗?我关注经理 GridFieldManager headGridMng = new GridFieldManager(1, 4, GridFieldManager.USE_ALL_HEIGHT | Manager.USE_ALL_WIDTH | GridFieldManager.FIXED_SIZE);结合“headGridMng.setColumnProperty(XX,GridFieldManager.FIXED_SIZE,XXX);”和 headGridMng.add(new LabelField("",DrawStyle.LEFT | Field.FIELD_LEFT));
猜你喜欢
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多