Editfield滚动无法在黑莓中达到顶峰

我在登录表单中有两个EditFields,其名称为Email:和Password:.就在电子邮件下面,我有登录按钮.假设我下来直到登录,我只能向后滚动直到密码字段.光标无法到达电子邮件字段.在模拟器中,我尝试使用箭头键和触控板.请帮助如何滚动回第一个editfield

AbsoluteFieldManager ab = new AbsoluteFieldManager();

  add(ab);
  new SeparatorField();

     et=new EditField("Email-id:","");
     pwd=new PasswordEditField("Password:",""); 

     ab.add(et,35,110); 
     ab.add(pwd,35,150); 

我正在使用AbsoluteFieldManager并为OS 6.0开发.我希望loginscreen看起来像facebook登录页面.
请告诉我可能导致无法向上滚动的原因

最佳答案 也许这是AbsoluteFieldManager的RIM错误.从来没有使用它,所以我不知道它.您可以创建一个解决此问题的方法.在下面找到它:

et=new EditField("Email-id:","");
pwd=new PasswordEditField("Password:","") {
    protected int moveFocus(int amount, int status, int time) {
        int cursorPosition = this.getCursorPosition();
        if ((cursorPosition == 0) && (amount < 0)) {
            et.setFocus();
            return 0;
        }
        else {
            return super.moveFocus(amount, status, time);
        }
    }
}; 

这样,当您到达密码编辑字段中的第一个元素时,您将需要使电子邮件字段成为焦点.这对你来说很有用.

解决问题的另一种方法是在水平字段管理器中添加两个字段,这样我想这对你肯定会有效.如果不使用第一种方法.您可以在下面找到Horizo​​ntalFieldManager的代码:

 et=new EditField("Email-id:","");
 pwd=new PasswordEditField("Password:",""); 
 HorizontalFieldManager manager = new HorizontalFieldManager();
 manager.add(et);
 manager.add(pwd);
 ab.add(manager, yourX, yourY);
点赞