Codenameone 窗体在选择值后向下滚动到下拉列表中

Codenameone 窗体在选择值后向下滚动到下拉列表中,codenameone,Codenameone,当下拉列表中选择的日期值将自动向下推送表单中的内容,并且永远不会刷新时,我看到了一个问题 我使用了content.setScrollableY(true),它使表单可以滚动。但是,当我在下拉列表中选择日期值时,问题就出现了,我必须滚动日期以选择将在表单中内部滚动内容的日期。请建议 代码: Form hi = new Form("Pick", BoxLayout.y()); Label emptyLbl1 = new Label(" "); emptyLbl1.setUIID("S

当下拉列表中选择的日期值将自动向下推送表单中的内容,并且永远不会刷新时,我看到了一个问题

我使用了content.setScrollableY(true),它使表单可以滚动。但是,当我在下拉列表中选择日期值时,问题就出现了,我必须滚动日期以选择将在表单中内部滚动内容的日期。请建议

代码:

Form hi = new Form("Pick", BoxLayout.y());        
Label emptyLbl1 = new Label(" ");
emptyLbl1.setUIID("Seperator");

Label emptyLbl2 = new Label(" ");
emptyLbl2.setUIID("Seperator");

Label emptyLbl3 = new Label(" ");
emptyLbl3.setUIID("Seperator");

Label emptyLbl4 = new Label(" ");
emptyLbl4.setUIID("Seperator");

Label emptyLbl5 = new Label(" ");
emptyLbl5.setUIID("Seperator");

Label emptyLbl6 = new Label(" ");
emptyLbl6.setUIID("Seperator");

Label emptyLbl7 = new Label(" ");
emptyLbl7.setUIID("Seperator");

Picker p = new Picker();
p.setType(Display.PICKER_TYPE_DATE);
hi.add(p).add(emptyLbl1).add(emptyLbl7);
CheckBox pickStartTime;
CheckBox pickEndTime;
pickStartTime = new CheckBox("Edit Start Time");
pickStartTime.setOppositeSide(true);
pickStartTime.setHeight(Display.getInstance().convertToPixels(6.5f));
pickStartTime.setSelected(false);
pickStartTime.setUIID("CheckArea");
pickEndTime = new CheckBox("Edit End Time");
pickEndTime.setOppositeSide(true);
pickEndTime.setHeight(Display.getInstance().convertToPixels(6.5f));
pickEndTime.setSelected(false);
pickEndTime.setUIID("CheckArea");
Picker timePicker1 = new Picker();
Picker datePicker1 = new Picker();
Picker dateTimePicker1 = new Picker();
timePicker1.setUIID("TextField");
datePicker1.setUIID("TextField");
dateTimePicker1.setUIID("TextField");
Button navigate = new Button("Navigation");
navigate.setUIID("NavigateButton");        
CommonUtil.makeBorderRound(navigate);
Picker p1 = new Picker();
p1.setType(Display.PICKER_TYPE_DATE);
Label clock = new Label("--:--", "Clock");
hi.add(p1).add(pickStartTime).add(emptyLbl2).add(navigate).add(clock);
Picker p2 = new Picker();
p2.setType(Display.PICKER_TYPE_DATE);
hi.add(pickEndTime).add(p2).add(emptyLbl3).add(emptyLbl5);
Picker p3 = new Picker();
p3.setType(Display.PICKER_TYPE_DATE);
Button finishActivity = new Button("Finish Activity");
CommonUtil.makeBorderRound(finishActivity);
finish.setTextPosition(LEFT);
CommonUtil.addSideMenu(this);
hi.add(p3).add(emptyLbl6).add(finish);
hi.show();

这不会发生在我身上:

Form hi = new Form("Pick", BoxLayout.y());
Picker p = new Picker();
p.setType(Display.PICKER_TYPE_DATE);
hi.add(p);

hi.show();

确保您使用的是轻量级选择器。

我不会遇到这种情况:

Form hi = new Form("Pick", BoxLayout.y());
Picker p = new Picker();
p.setType(Display.PICKER_TYPE_DATE);
hi.add(p);

hi.show();

确保您使用的是轻量级选择器。

我已经添加了修改后的代码。我无法隔离代码来显示表单向下移动,但表单随着测试代码向上移动。请让我知道可以做些什么来解决像这样的问题。谢谢。我看不出这与我的测试用例有什么不同。请尝试将其隔离到一个单独的项目中,以便我可以重现该问题。当表单有更多控件且日期控件位于表单底部时,会发生此问题。请建议。为(int-iter=0;iter<100;iter++)添加
{hi.add(新标签(“填充”);}
之前,选择器也不会更改任何内容。我已经添加了修改后的代码。我无法隔离代码来显示表单向下移动,但表单随着测试代码向上移动。请让我知道可以做些什么来解决像这样的问题。谢谢。我看不出这与我的测试用例有什么不同。请尝试将其隔离到一个单独的项目中,以便我可以重现该问题。当表单有更多控件且日期控件位于表单底部时,会发生此问题。请建议。为(int-iter=0;iter<100;iter++)添加
{hi.add(新标签(“填充”);}
在选择器也不改变任何东西之前。