Results 1 to 5 of 5

Thread: BoxLayoutContainer adds all new widgets at position 0, not at the end

    Thank you for reporting this bug. We will make it our priority to review this report.
  1. #1
    Sencha User
    Join Date
    Jul 2011
    Posts
    45
    Vote Rating
    0
      0  

    Default BoxLayoutContainer adds all new widgets at position 0, not at the end

    HBoxLayoutContainer and VBoxLayoutContainer adds new widgets at position 0 (on top of each other), not at the end of the widget list, if widgets are added at runtime. Widgets get in place only after container gets resized.
    rev 1806

    First 5 ToggleButtons, that are being added in a constructor, are placed correctly, but when you click any of those buttons to add new at runtime, you will see that new buttons are being placed on top of the first button.

    Code:
    public class GxtModule implements EntryPoint, ClickHandler {    
        HBoxLayoutContainer hlc;
    
    
        @Override
        public void onModuleLoad() {
            RootPanel rootPanel = RootPanel.get();
            hlc = new HBoxLayoutContainer();
            rootPanel.add(hlc);
            for (int i = 0; i < 5; i++) {
                ToggleButton b = new ToggleButton("Button " + i);
                b.setLayoutData(new BoxLayoutData(new Margins(0, 5, 0, 0)));
                b.addDomHandler(this, ClickEvent.getType());
                hlc.add(b);
            }
        }
    
    
        @Override
        public void onClick(ClickEvent event) {
            ToggleButton b = new ToggleButton("Button " + hlc.getWidgetCount());
            b.setLayoutData(new BoxLayoutData(new Margins(0, 5, 0, 0)));
            b.addDomHandler(this, ClickEvent.getType());
            hlc.add(b);
        }
    }

  2. #2
    Sencha Premium Member
    Join Date
    Sep 2007
    Posts
    13,976
    Vote Rating
    131
      0  

    Default

    Try to call forceLayout after adding them.

  3. #3
    Sencha User
    Join Date
    Jul 2011
    Posts
    45
    Vote Rating
    0
      0  

    Default

    calling forceLayout() fixes that. Is it supposed to be like that or forceLayout() won't be needed in a final version?

  4. #4
    Sencha User
    Join Date
    Oct 2011
    Posts
    55
    Vote Rating
    0
      0  

    Default

    It's always have been like that (previously doLayout(boolean force)). Consider adding 100 widgets at runtime - it wouldn't make any sense to layout them after each component added.

  5. #5
    Sencha User
    Join Date
    Jul 2011
    Posts
    45
    Vote Rating
    0
      0  

    Default

    Yes, I thought about it just few seconds after posting the question.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •