2016-09-22 93 views
1

当显示的窗体不适合屏幕时,我可以按预期滚动到底部。当我按下其中一个字段时,键盘显示出来,当键盘弹起时,我可以滚动到屏幕底部(如预期的那样再次),与我按下的字段无关。CodenameOne键盘滚动问题

实施例屏幕截图:

滚动至底部没有键盘:

Scroll to bottom with no keyboard

滚动至底部与键盘:

Scroll to bottom with keyboard:

然而,当一个形式是显示适合屏幕,当键盘变为活动状态时,窗体不会滚动,隐藏字段。 在这个例子中,我减少了适合屏幕的字段数量,当按下其中一个字段时,键盘显示时不会隐藏,我无法向下滚动到最后一个字段(共14个字段字段):

No scroll

当我最初按下将被隐藏的表单键盘(如最后一个字段的字段),我能够再次滚动:

Scroll Small

有没有办法总是确保滚动时,事情是喜由于键盘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的价值,使我要么比屏幕可以显示或刚够多个字段。在我的案例中,值分别为2014

这是使用Android设备进行测试的。

+0

这听起来像是虚拟键盘的错误行为,它可能测试'isScrollable()'标志,它是在这种情况下,真实,从而试图对此“聪明”一点。请在此提出问题。 –

回答