3

我正在使用 sencha touch 制作移动应用程序。当用户登录然后他/她看到主页视图时,这个应用程序会做什么。在此home view有两个按钮。这两个按钮将用户带到各自的视图,即AppointmentsMessages。这两个视图底部有三个选项卡按钮,即Home, Appointments, Messages. 主页按钮将用户带回home view由两个按钮组成的主页。而纽扣Appointments则把Messages他带到了他们自己的观点上。

这是我的home view

在此处输入图像描述

如您所见,此视图中没有选项卡。以下是此视图的代码

config: {
    layout: {
        type: 'vbox'
    },
    items: [
        {
            xtype: 'titlebar',
            title: 'Home',
            docked: 'top'
        },
        {
            xtype: 'button',
            cls: 'messagesBtn',
            itemId: 'msg'
        },
        {
            xtype: 'button',
            cls: 'appointmentsBtn',
            itemId: 'appoint'
        }
    ],

    listeners: [
        {
            delegate: '#appoint',
            event: 'tap',
            fn: 'launchAppointmentView'
        }
    ]
},
launchAppointmentView: function () {
    this.fireEvent('launchAppointments');
}

一旦用户点击让我们说Button 2哪个带他去Appointments View。然后以下是向他显示的视图

在此处输入图像描述

和下面这个视图的代码

config: {
    tabBarPosition: 'bottom',

    items: [
        {
            title: 'Appointments',
            iconCls: 'home',

            styleHtmlContent: true,
            scrollable: true,

            items: {
                docked: 'top',
                xtype: 'titlebar',
                title: 'Appointments'
            },

            html: ["Appointments View"].join("")
        }
    ]
}

加载此视图后,我只能看到一个约会选项卡。我想看到这三个视图的三个选项卡。如何使其他选项卡可见?

以下是我的消息视图

在此处输入图像描述

这是它的代码

config: {
    tabBarPosition: 'bottom',

    items: [
        {
            title: 'Messages',
            iconCls: 'home',

            styleHtmlContent: true,
            scrollable: true,

            items: {
                docked: 'top',
                xtype: 'titlebar',
                title: 'Messages'
            },

            html: ["Messages View"].join("")
        }
    ]
}

我看不到这个视图,也根本无法进入这个视图,因为我在选项卡上没有消息按钮。同样,如何为这些视图添加所有选项卡按钮,以及当我单击每个选项卡时,它会将我带到它的视图?

4

1 回答 1

0

以下是选项卡面板的示例:

Ext.create('Ext.TabPanel', {
    fullscreen: true,
    tabBarPosition: 'bottom',

    defaults: {
        styleHtmlContent: true
    },

    items: [
        {
            title: 'Home',
            iconCls: 'home',
            html: 'Home Screen'
        },
        {
            title: 'Contact',
            iconCls: 'user',
            html: 'Contact Screen'
        }
    ]
});

问题是,您还没有在项目列表中添加附加项目 - 它们必须在选项卡、主页和联系人中。每个屏幕需要 3 个选项卡,因此每个文件有 3 个项目。

对于事件,我喜欢创建一个控制器,为每个需要监听事件的项目提供参考,并为每个项目设置控件。让我知道您是否需要帮助解决如何做到这一点。我将在下面包含一个简单的示例来帮助您入门:

Ext.define('Analytics.controller.events.InstType', {
    extend: 'Ext.app.Controller',   

    config: { 
        refs: {
            instType: {
            selector: '#instType'
        }
    }
},

init: function() {
    // Start listening for toggle events on the 3 segmented button panels   
    this.control({   
        'instType': { 'toggle': function(container, button, pressed) {
                this.onGraphType(container, button, pressed);
            }
        }
    }); 
},

// note: these functions are called on both the buttons selected and the one that became unselected
// the 'pressed' param inidicates whether this is the selected button or not.
onGraphType: function (container, button, pressed) {
    if (pressed) { ..do stuff.. }
});
于 2013-03-13T16:35:03.070 回答