当显示的表单不适合屏幕时,我可以按预期滚动到底部。当我按下其中一个字段时,键盘显示,键盘启动时,我可以滚动到屏幕底部(再次按预期方式),与我按下的字段无关。
示例屏幕截图:
没有键盘滚动到底部:
使用键盘滚动到底部:
但是,当显示表单 适合屏幕时,表单在键盘变为活动状态时不会滚动,隐藏字段。 在这个例子中,我减少了适合屏幕的字段数量,当我按下其中一个键盘显示时不会隐藏的字段时,我无法向下滚动到最后一个字段(共14个字段) ):
当我最初按下一个隐藏在键盘上的字段(例如最后一个字段)时,我再次能够滚动:
有没有办法在键盘隐藏东西时始终确保滚动?
此代码:
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设备测试的。
答案 0 :(得分:1)
似乎这仍然是一个悬而未决的问题,请点击此处:Ability to scroll Form/Components while virtual keyboard is showing #361