Этот вопрос относится к этому вопросу: Codename One - container.setScrollVisible (true) в центре BorderLayout
В следующем примере кода setScrollVisible(true)
работает правильно, когда пользователь раскрывает Аккордеон (который занимает больше места, чем высота экрана) и выполняет прокрутку:
Form hi = new Form("Hi World", new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE));
Container body = new Container(BoxLayout.y());
for (int i = 0; i < 100; i++) {
body.add(new Label("Label " + i));
}
Accordion accordion = new Accordion();
accordion.addContent("Tap to expand", body);
Container center = new Container(BoxLayout.y());
center.add(accordion);
center.setScrollableY(true);
center.setScrollVisible(true);
center.getAllStyles().setPaddingUnit(Style.UNIT_TYPE_DIPS);
center.getAllStyles().setPadding(2, 2, 2, 2);
hi.add(BorderLayout.CENTER, center);
hi.show();
Но в этом другом примере кода setScrollVisible(true)
не работает, когда пользователь расширяет все Аккордеоны (которые занимают больше места, чем высота экрана) и выполняет прокрутку:
Form hi = new Form("Hi World", new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE));
// Warning: you need to set the theme property "ComponentGroupBool" to true
Button button1 = new Button("Button 1", "ButtonMenuCategories");
CheckBox button11 = CheckBox.createToggle("Button 1.1");
CheckBox button12 = CheckBox.createToggle("Button 1.2");
Button button13 = new Button("Button 1.3", "ButtonMenuCategories");
CheckBox button131 = CheckBox.createToggle("Button 1.3.1");
CheckBox button132 = CheckBox.createToggle("Button 1.3.2");
CheckBox button133 = CheckBox.createToggle("Button 1.3.3");
CheckBox button14 = CheckBox.createToggle("Button 1.4");
Button button2 = new Button("Button 2", "ButtonMenuCategories");
Button button3 = new Button("Button 3", "ButtonMenuCategories");
Button button4 = new Button("Button 4", "ButtonMenuCategories");
Button button5 = new Button("Button 5", "ButtonMenuCategories");
Accordion accordion13 = new Accordion();
ComponentGroup cmpGroup1 = ComponentGroup.enclose(button131, button132, button133);
cmpGroup1.setScrollable(false);
accordion13.addContent(button13, FlowLayout.encloseCenter(cmpGroup1));
Accordion accordion1 = new Accordion();
ComponentGroup cmpGroup2 = ComponentGroup.enclose(button11, button12, accordion13, button14);
cmpGroup2.setScrollable(false);
accordion1.addContent(button1, FlowLayout.encloseCenter(cmpGroup2));
Accordion accordion2 = new Accordion();
accordion2.addContent(button2, new Label("Hello"));
Accordion accordion3 = new Accordion();
accordion3.addContent(button3, new Label("Hello"));
Accordion accordion4 = new Accordion();
accordion4.addContent(button4, new Label("Hello"));
Accordion accordion5 = new Accordion();
accordion5.addContent(button5, new Label("Hello"));
ComponentGroup cmpGroup = ComponentGroup.enclose(accordion1, accordion2, accordion3, accordion4, accordion5);
Container menu = FlowLayout.encloseCenter(cmpGroup);
accordion13.setScrollable(false);
accordion1.setScrollable(false);
accordion2.setScrollable(false);
accordion3.setScrollable(false);
accordion4.setScrollable(false);
accordion5.setScrollable(false);
cmpGroup.setScrollable(false);
menu.setScrollableY(true);
menu.setScrollVisible(true);
hi.add(BorderLayout.CENTER, menu);
hi.show();
Что не так во втором примере кода?