необъяснимое расстояние в горизонтальной панели в GWT - PullRequest
1 голос
/ 15 января 2010

Я добавляю виджеты на горизонтальную панель, и я хочу, чтобы все они были один раз рядом с другим в левом углу.

, хотя я установил интервал = 0 и выравнивание = слева, виджеты все еще имеют пространство между ними. они равномерно распределены по панели.

см. Здесь код для виджета C'tor и функции, которая добавляет новую вкладку (кнопка переключения) tabsPanel - это горизонтальная панель, которую вы видите выровненной влево / вправо в соответствии с локалью

Любой совет будет оценен спасибо ....

public TabsWidgetManager(int width, int height, int tabs_shift_direction){ 
    DecoratorPanel decorContent = new DecoratorPanel();
    DecoratorPanel decorTitle = new DecoratorPanel();
    widgetPanel.setSize(Integer.toString(width), Integer.toString(height));

    tabsPanel.setSize(Integer.toString(UIConst.USER_CONTENT_WIDTH), Integer.toString(UIConst.TW_DEFAULT_TAB_HEIGHT));
    tabsPanel.setSpacing(0);

    if (tabs_shift_direction==1)
        tabsPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_LEFT);
    else
        tabsPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT);
    decorTitle.add(tabsPanel);

    contentPanel.setSize(Integer.toString(UIConst.USER_CONTENT_WIDTH), Integer.toString(UIConst.USER_CONTENT_MINUS_TABS_HEIGHT));
    decorContent.add(contentPanel);
    widgetPanel.add(decorTitle, 0, 0);

    widgetPanel.add(decorContent, 0, UIConst.TW_DEFAULT_TAB_HEIGHT+15);

    initWidget(widgetPanel);
}

public void addTab(String title, Widget widget){
    widget.setVisible(false);
    ToggleButton tab = new ToggleButton(title);
    tabsList.add(tab);
    tab.setSize(Integer.toString(UIConst.TW_TAB_DEFAULT_WIDTH), Integer.toString(UIConst.TW_TAB_DEFAULT_HEIGHT));
    tab.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            handleTabClick((ToggleButton)event.getSource());

        }
    });

    //adding to the map
    tabToWidget.put(tab, widget);

    // adding to the tabs bar 
    tabsPanel.add(tab);
    //adding to the content
    contentPanel.add(widget);
}

1 Ответ

0 голосов
/ 18 января 2010

Полагаю, contentPanel - ваша горизонтальная панель. HorizontalPanel сгенерирует HTML-таблицу. Вы устанавливаете ширину панели. Если ширина больше, чем сумма всех значений ширины ваших подвиджетов, таблица будет равномерно распределять виджеты. Удалить звонок setWidth().

...