在sencha touch中,仅在特定卡上的标题栏中添加按钮

时间:2014-07-18 10:07:18

标签: button controller sencha-touch hidden titlebar

我只需要在特定卡上显示刷新按钮,标题栏在某些父面板中定义。我试过以下方式:

家长小组:

config:
{
    layout : 'fit',
    items:[
        {
            xtype:'titlebar',
            docked:'top',
            title:'Directory',
            items:[
                {
                    xtype: 'button',           //First Button-visible in all cards
                    docked: 'left',
                    iconCls: 'arrow_left',
                    action: 'back'
                },
                {
                    xtype: 'button',           //Target button-to be visible in one card only
                    docked: 'right',
                    iconCls: 'refresh',
                    action: 'reset',
                    hidden: true              //hiding this button
                }
            ]
        },
        {
            xtype:'tabpanel',
            tabBarPosition:'top',
            items:[
                {
                    title: 'Tab1',                              
                    xtype: 'Card1'
                },
                {
                    title: 'Tab2',                              
                    xtype: 'Card2'
                }
            ]
        }
    ]
}

我在上面的面板中有一个隐藏属性设置为true,我想为卡片设置false。

单击按钮时目标卡被设置为活动状态。我在buttonTapListener中将hidden属性更改为false,然后将目标卡设置为活动状态。但刷新按钮不可见。这是控制器代码:

onButtonTap: function()
{
    ...
    var getParentPanelRef = this.getParentPanel();
    var parentPanelItems = getParentPanelRef.getItems();
    console.log(parentPanelItems.items[0].config.items[1].hidden);      //Prints true
    directoryMainContainerItems.items[0].config.items[1].hidden=false;
    console.log(parentPanelItems.items[0].config.items[1].hidden);      //Prints false

    var directorySearchMainUIRef = this.getSomeOtherParentPanel();
    directorySearchMainUIRef.setActiveItem(1);                          //Switches to target card
}

隐藏的值会改变,但按钮不会出现。如果是这样,请建议替代方案。提前谢谢。

2 个答案:

答案 0 :(得分:0)

也许您的父组件的宽度超出了浏览器的范围,您的按钮停靠在右侧,以便您可以看到它。

答案 1 :(得分:0)

您可以添加/删除按钮,而不是隐藏/显示按钮。 我前一段时间遇到过类似的问题,似乎sencha并不总能检测到应该重新绘制组件的时间。