【问题标题】:Virtual keyboard is hiding the part of the edit Field in BlackBerry虚拟键盘隐藏了黑莓中编辑字段的一部分
【发布时间】:2013-08-23 19:24:50
【问题描述】:

我有一个LabelfieldEditField 和一个Button,它们垂直居中对齐。我在 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);

请帮忙。

【问题讨论】:

  • 你能解释一下为什么你有这么多嵌套管理器吗?如果将此代码放在MainScreen 子类中,则屏幕已经内置了VerticalFieldManager。我不明白为什么你不能只使用那个经理,然后摆脱hfmvfmComponentvfmMain。但是,可能是我不明白你的设计。也许截图会有所帮助?这很重要,因为您可能已通过复杂的布局触发了此错误,并且解决方法可能需要知道需要滚动哪个垂直字段管理器。
  • 我已经通过自定义我的顶级 vfm 来修复它。所以不需要添加那么多经理。不知怎的,你就在这里。

标签: blackberry keyboard blackberry-editfield


【解决方案1】:

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

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

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

【讨论】:

  • 我使用了我自己的相同帖子。无论如何,再次感谢彼得。
  • 我认为这是同一个问题 - 只是想在两个地方都整理一下!谢谢谢谢,没问题,乐于助人。事实上,“中心经理”是我多年来一直想发布的东西,你的问题给了机会。
猜你喜欢
  • 1970-01-01
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-28
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
相关资源
最近更新 更多