当显示的窗体不适合屏幕时,我可以按预期滚动到底部。当我按下其中一个字段时,键盘显示出来,当键盘弹起时,我可以滚动到屏幕底部(如预期的那样再次),与我按下的字段无关。CodenameOne键盘滚动问题
实施例屏幕截图:
滚动至底部没有键盘:
滚动至底部与键盘:
然而,当一个形式是显示适合屏幕,当键盘变为活动状态时,窗体不会滚动,隐藏字段。 在这个例子中,我减少了适合屏幕的字段数量,当按下其中一个字段时,键盘显示时不会隐藏,我无法向下滚动到最后一个字段(共14个字段字段):
当我最初按下将被隐藏的表单键盘(如最后一个字段的字段),我能够再次滚动:
有没有办法总是确保滚动时,事情是喜由于键盘dden?
此代码:
public void start() {
if (current != null) {
current.show();
return;
}
Form hi = new Form();
for (int i = 0; i < 20; i++) {
hi.addComponent(getEntry(i + 1));
}
hi.show();
}
public Container getEntry(int val) {
Container c = new Container();
c.setLayout(new BorderLayout());
TextField tf = new TextField() {
@Override
protected Dimension calcPreferredSize() {
return new Dimension(Display.getInstance().getDisplayWidth(), 70);
}
};
tf.setConstraint(TextField.DECIMAL);
tf.setText(val + "");
c.add(BorderLayout.CENTER, tf);
return c;
}
这两个测试之间的唯一区别是i
的价值,使我要么比屏幕可以显示或刚够多个字段。在我的案例中,值分别为20
和14
。
这是使用Android设备进行测试的。
这听起来像是虚拟键盘的错误行为,它可能测试'isScrollable()'标志,它是在这种情况下,真实,从而试图对此“聪明”一点。请在此提出问题。 –