0

我有 aLabelfieldEditFieldaButton居中垂直对齐。我在 Verticalfield 管理器中添加了这三个字段,然后将其添加到 Horizo​​ntal Field Manager 中。最后将 HFM 添加到另一个 VFM。现在在 9800 设备或 9380 曲线中,我观察到当我触摸编辑字段时,虚拟键盘即将到来。它部分隐藏了编辑字段。

当虚拟键盘出现时,我想将这些东西向上移动。我怎样才能做到。我的代码在这里:

    HorizontalFieldManager hfm = new HorizontalFieldManager();
    VerticalFieldManager vfmComponent = new VerticalFieldManager(USE_ALL_WIDTH);
    vfmComponent.add(lfServerUrl);
    vfmComponent.add(mEfURL);
    vfmComponent.add(mBtnSave);
    hfm.add(vfmComponent);
    int topEmptySpace = (Display.getHeight() - (Bitmap.getBitmapResource(mStrTopBar).getHeight() + hfm.getPreferredHeight() + 25)) / 2;
    hfm.setMargin(topEmptySpace, 0, 0, 0);
    VerticalFieldManager vfmMain = new VerticalFieldManager(VERTICAL_SCROLL| NO_HORIZONTAL_SCROLL );
    vfmMain.add(hfm);
    add(vfmMain);

请帮忙。

4

1 回答 1

1

在这里的 BB 论坛上也提出了同样的问题; http://supportforums.blackberry.com/t5/Java-Development/Virtual-keyboard-is-hiding-the-part-of-the-edit-Field/td-p/2553879

给出的答案涉及创建一个专门的管理器,该管理器通过覆盖该管理器的子布局来“居中”一个字段。然后将要居中的字段放置在另一个标准管理器中,该管理器已添加到居中管理器中。这意味着居中的经理只需要处理一件事。最后的“技巧”是将 MainScreen 定义为非滚动,这意味着居中管理器被赋予了它可以使用的高度,并且当添加虚拟键盘时这个高度发生了变化,再次调用子布局并且居中管理器可以调整位置。

BB 论坛中有更多关于该主题的信息,包括对各种知识库文章和示例代码的引用。因此,请参考该线程以获取更多信息。

于 2013-08-24T12:15:03.747 回答