2012-02-16 4 views
1

я застрял с чем-то, что я себе бы очень проста :)ExtJS - поплавок 2 панели и центра им

Плавающий две панели рядом друг с другом и держать их в центре. Ближайшим, что я получил, является центрирование панелей, но одностороннее.

так:

  _ 
     |_| 
     _ 
     |_| 

Я пытаюсь получить

  _ _ 
     |_| |_| 

Это мой файл до сих пор

Ext.define("App.view.MyWindow", { 
extend:'Ext.panel.Panel', 
alias:'widget.mywindow', 
requires:[ 
     //this is just a simply panel with html:'abcde" 
     'App.view.Portal1' 

     ], 
items:[{ 
    xtype:'portal1', 
    height:400, 
    width:400, 
    style:{ 
     margin: '0 auto', 
    } 
},{ 
    xtype:'portal1', 
    height:400, 
    width:400, 
    style:{ 
     margin: '0 auto', 
    } 
}] 
}); 

Любые идеи? Все приветствуются :) ... заранее спасибо

Update: Ближайшим я пришел к «решению» заключается в следующем: (однако это требует установленной ширины)

Ext.define("App.view.MyWindow", { 
    extend:'Ext.panel.Panel', 
    alias:'widget.mywindow', 
    requires:[ 
      //this is just a simply panel with html:'abcde" with width & height 400 
      'App.view.Portal1' 

      ], 
      layout:'fit', 
    items:[{ 
     layout:{ 
      type:'vbox', 
      align:'center' 
     }, 
     items:[{ 
      layout:{ 
       type:'hbox', 
      }, 
      //Set width :(
      width:800, 
      items:[{ 
       xtype:'portal1', 
      },{ 
       xtype:'portal1', 
      }] 
     }] 

    }] 
}); 

Решение

Спасибо тем, кто прокомментировал. Вот рабочее решение. Не используйте layout:fit на оберточной панели

Ext.define("App.view.MyWindow", { 
    extend:'Ext.panel.Panel', 
    alias:'widget.mywindow', 
    requires:[ 
      //this is just a simply panel with html:'abcde" with width & height 400 
      'App.view.Portal1' 

      ], 
    style:{ 
     textAlign:'center' 
    }, 
    items:[{ 
     xtype:'portal1', 
     style:{ 
      display:'inline-block' 
     } 
    },{ 
     xtype:'portal1', 
     style:{ 
      display:'inline-block' 
     } 
    }] 
}); 

ответ

1

КАС единственное решение, так как я не знаю, ExtJS:

Дают каждой панели соответствующие горизонтальные поля, чтобы они не работают вместе. Установите их ширину и высоту как обычно. Затем установите display: inline на панели. Наконец, установите для содержащего элемента значение text-align: center. Для этого вам может потребоваться ввести новый контейнерный элемент.

+0

, похоже, делает то, что ему нравится .. extjs, похоже, не нравится. спасибо tho – Stevanicus

+0

вернулся, чтобы дать вашему комментарию еще один снимок. на самом деле ... выглядел так, как будто он работает :) однако с дисплеем: inline-block; – Stevanicus

+1

Сладкий! Рад, что смог помочь. –

1

Give 'MyWindow' макет HBox. Элементы, которые содержатся внутри, будут выложены горизонтально.

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.layout.container.HBox

+0

спасибо. но они не сосредоточены :( – Stevanicus

+0

ваш на самом деле не за горами .. дал мне идею любым способом ... с помощью vBox и hBox с выравниванием по середине и по центру – Stevanicus

+1

ах да, я должен был упомянуть, чтобы взглянуть на параметры конфигурации, а также для центрирования. Но если у вас это работает, отлично :) – jthurau

Смежные вопросы