Extjs将按钮对齐在容器中心

时间:2013-10-28 11:20:19

标签: javascript extjs

我有几个按钮的跟随容器:

{
                    xtype : 'container',
                    width : 320,
                    layout : 'hbox',
                    cls : 'readable-form no-border',
                    labelSeparator : '',
                    ref : '../sendBackForm',
                    layoutConfig: {
                        padding:'5',
                        pack:'center',
                        align:'middle'
                    },
                    style : {
                        margin : 'auto'
                    },
                    items : [ {
                        xtype : 'button',
                        itemId : 'yes',
                        iconCls : 'save-button-icon',
                        text : 'Yes',
                        ref : '../../yes'
                    }, {
                        xtype : 'spacer',
                        width : 10
                    }, {
                        xtype : 'button',
                        itemId : 'checker',
                        iconCls : 'save-button-icon',
                        text : 'Back to checker',
                        ref : '../../checker'
                    }, {
                        xtype : 'spacer',
                        width : 10
                    }, {
                        xtype : 'button',
                        itemId : 'prebooker',
                        iconCls : 'save-button-icon',
                        text : 'Back to prebooker',
                        ref : '../../prebooker'
                    }, {
                        xtype : 'spacer',
                        width : 10
                    }, {
                        xtype : 'button',
                        itemId : 'cancel',
                        text : 'Cancel',
                        ref : '../../cancel'
                    }, {
                        xtype : 'spacer',
                        width : 90
                    }, {
                        xtype : 'button',
                        itemId : 'ok',
                        hidden : true,
                        text : 'Ok',
                        ref : '../../ok'
                    } ]

                }

问题是当我隐藏所有按钮并且只想显示确定按钮时,它出现在左窗口附近,我怎么能把它放在窗口中间?

3 个答案:

答案 0 :(得分:1)

您是否尝试在容器中添加以下代码? :autoEl: {tag: 'center'}

答案 1 :(得分:1)

您可以尝试在“确定”按钮之前和之后放置垫片,

...
items: [
...
{xtype: 'tbspacer', flex: 1},
{
    xtype : 'button',
    itemId : 'btnok',
    hidden : true,
    text : 'Ok',
    ref : '../../ok'
},
{xtype: 'tbspacer', flex: 1}
...

和“确定”和“取消”按钮处理程序

....
bindHandlers: function(){
    var me = this;
    me.getComponent('btnok').on('click', function(){
        me.toggleButtons(true);
    });

    me.getComponent('btncancel').on('click', function(){
        me.toggleButtons(false);
    });      
},
toggleButtons: function(visible){
    this.getComp('btnyes').setVisible(visible);
    this.getComp('checker').setVisible(visible);
    this.getComp('prebooker').setVisible(visible);
    this.getComp('btncancel').setVisible(visible);
    this.getComp('btnok').setVisible(!visible);
}
...

或者在“确定”按钮

之前和之后手动添加垫片

答案 2 :(得分:0)

看起来像layoutConfig won't work anymore在布局配置中设置'pack'和'align',fiddle here(点击'是'按钮隐藏除'确定'以外的所有内容)