我有一个Labelfield
、EditField
和Button
,它们垂直居中对齐。这三个字段是我在垂直字段管理器中添加的,然后添加到水平字段管理器。最后将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);
请帮忙。
BB论坛上也提出了同样的问题;http://supportforums.blackberry.com/t5/Java-Development/Virtual-keyboard-is-hiding-the-part-of-the-edit-Field/td-p/2553879
给出的答案包括创建一个专门的管理器,通过覆盖该管理器的子层来"集中"字段。然后将要居中的字段放置在另一个标准管理器中,该管理器已添加到居中管理器中。这意味着中心经理只需要处理一件事。最后的"技巧"是将主屏幕定义为非滚动,这意味着居中管理器被赋予了它可以使用的高度,当添加虚拟键盘时,这个高度发生了变化,再次调用子屏幕,居中管理器可以调整位置。
BB论坛上有更多关于该线程的内容,包括对各种KB文章和示例代码的引用。因此,请参考线程了解更多信息。