Sencha Touch 列表不显示(再次!)

Posted

技术标签:

【中文标题】Sencha Touch 列表不显示(再次!)【英文标题】:Sencha Touch list not displaying (again!) 【发布时间】:2013-05-09 06:26:31 【问题描述】:

我的 Sencha Touch 列表未显示。我所做的只是将根容器更改为导航视图,以便可以将其他视图推送到它上面,但是导航不喜欢将“适合”作为根。所以我把它移到另一个类型为“fit”的容器中。但是,现在列表不显示了?!

见下文:

Ext.define('MyApp.view.inbox.MyInbox', 
    extend: 'Ext.navigation.View',
    alias: 'widget.myinboxview',

    requires: [
        'Ext.navigation.View'
    ],

    config: 
        title: 'My Inbox',
        xtype: 'card',
        items: [
            
                xtype: 'container',
                type: 'vbox',
                items: [
                    
                        xtype: 'container',
                        flex: 1,
                        items: [
                            
                                xtype: 'container',
                                margin: 10,
                                layout: 
                                    type: 'hbox'
                                ,
                                items: [
                                    
                                        xtype: 'label',
                                        html: 'You have sent'
                                    ,
                                    
                                        xtype: 'label',
                                        html: '0 enquiry',
                                        right: 0
                                    
                                ]
                            ,
                            
                                xtype: 'container',
                                margin: 10,
                                cls: 'linesAboveBelow',
                                layout: 
                                    type: 'hbox'
                                ,
                                items: [
                                    
                                        xtype: 'label',
                                        html: 'You have'
                                    ,
                                    
                                        xtype: 'label',
                                        html: '1 unread response',
                                        right: 0
                                    
                                ]
                            
                            ]
                    ,
                    
                        xtype: 'container',
                        flex: 5,
                        layout: 
                            type: 'fit'
                        ,
                        items: [
                            
                                xtype: 'list',
                                store: 'theInboxEnquiryStore',
                                itemTpl: [
                                    '<div>Date:  CreationDate </div>'
                                ]
                            
                        ]
                    
                ]
            
        ]
    
);

【问题讨论】:

【参考方案1】:

我已经修改了您的布局代码。 Here is a fiddle for it.

Ext.define('MyApp.view.inbox.MyInbox', 
            extend: 'Ext.navigation.View',
            alias: 'widget.myinboxview',
            requires: ['Ext.navigation.View'],
            config: 
                title: 'My Inbox',
                fullscreen: true,
                items: [
                    xtype: 'container',
                    layout: 'vbox',
                    title: 'My Inbox',
                    items: [
                        xtype: 'container',
                        items: [
                            xtype: 'container',
                            margin: 10,
                            layout: 'hbox',
                            items: [
                                xtype: 'label',
                                html: 'You have sent'
                            , 
                                xtype: 'label',
                                html: '0 enquiry',
                                right: 0
                            ]
                        , 
                            xtype: 'container',
                            margin: 10,
                            cls: 'linesAboveBelow',
                            layout: 'hbox',
                            items: [
                                xtype: 'label',
                                html: 'You have'
                            , 
                                xtype: 'label',
                                html: '1 unread response',
                                right: 0
                            ]
                        ]
                    , 
                        xtype: 'list',
                        itemTpl: 'title',
                        flex: 1,
                        data: [
                            title: 'Item 1'
                        , 
                            title: 'Item 2'
                        , 
                            title: 'Item 3'
                        , 
                            title: 'Item 4'
                        ]
                    ]
                ]
            
        );

有几个错误的配置项,例如 xtype:card,type:'vbox'。删除了那些。删除了列表的额外包装容器。更改了 flex 属性。仅将 flex 添加到列表中。因为您希望列表在呈现标签后填充剩余空间。将标题“我的收件箱”添加到子容器中,因为导航视图的标题来自子项。

【讨论】:

您好,谢谢,它成功了!抱歉我很笨,但我最初的观点有什么问题?我使用 Sencha Architect 创建布局,所以很想知道问题出在哪里。 我已经更新了我的答案。顺便说一句,选择这个作为正确答案。【参考方案2】:

你需要使用:

layout: 'vbox'

代替:

type: 'vbox'

对于您的第一个容器,它应该可以工作。

【讨论】:

它是一个“Ext.navigation.View”这一事实是否会改变它作为一个列表的任何内容? @jaffa 我不知道为什么,但我只是创建了一个小提琴,但它对我有用:senchafiddle.com/#BBTuu

以上是关于Sencha Touch 列表不显示(再次!)的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 2:如何在导航视图中显示列表?

Sencha Touch 不显示 XML 数据

如何在 VBOX 布局中显示 Sencha Touch 列表?

sencha touch 按距离排序列表

Sencha Touch:尝试将列表添加到面板

使用 store Sencha Touch 2 将数据加载到列表中并且不出现