我有Labelfield
,EditField
和Button
垂直居中对齐。我在Verticalfield管理器中添加了这三个字段,然后将其添加到水平字段管理器中。最后,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);
请帮助。
答案 0 :(得分:1)
此处的BB论坛也提出了同样的问题; http://supportforums.blackberry.com/t5/Java-Development/Virtual-keyboard-is-hiding-the-part-of-the-edit-Field/td-p/2553879
给出的答案涉及通过覆盖该Manager的子布局来创建一个专门的管理器,该管理器将一个Field“置于其中”。然后将要放置在另一个标准管理器内的字段放在中心管理器中。这意味着中心经理只需处理一件事。最后的'技巧'是将MainScreen定义为非滚动,这意味着中心管理器被赋予其可以使用的高度,并且当添加虚拟键盘时,此高度已更改,再次调用子布局,并且中心管理器可以调整位置。
BB论坛中有更多关于Thread的内容,包括对各种知识库文章和示例代码的引用。因此,请参阅该主题以获取更多信息。