【问题标题】:sencha touch 2 - how to add vertically scrollable component to horizontal carouselsencha touch 2 - 如何将垂直滚动组件添加到水平轮播
【发布时间】:2013-06-09 02:02:13
【问题描述】:

我已经为此花费了数天时间,并且严重无法理解为什么要做到这一点 - 无论如何 - 在我看来 - 它应该是默认行为。其他帖子似乎在询问如何防止我希望实现的行为,所以我一定做错了什么。

我要放这个组件:

Ext.define('Proximity.view.detail.DetailPanel', {
    extend: 'Ext.Panel',
    xtype: 'detailpanel',
    scrollable: 'true',

    config: {
        scrollable: 'true',
        layout: 'vbox',

        items: [
            {
                xtype: 'panel',
                bodyPadding: 15,
                docked: 'top',
                tpl: '<h3 class="detail-name">{name}</h3>' +
                    '<img class="detail-image" src="http://src.sencha.io/-34/x50/{image}"/>' +
                    '<div class="detail-description">\"{description}\"</div>' +
                    '<div class="detail-address">{street}, {suburb}</div>'
            },

         // more items to come here
        ]
    }
});

进入这个轮播:

Ext.define('Proximity.view.result.ResultCarousel', {
    extend: 'Ext.Carousel',
    xtype: 'detailcarousel',

    config: {
        store: 'RemoteResultStore',
        direction: 'horizontal',
        fullscreen: true,

        defaults: {
            styleHtmlContent: true,
            scrollable: true
        }  
    }
});

如果内容溢出当前屏幕,我可以向下滚动到底部。

但是当我将面板作为一堆项目添加到轮播时,轮播中的每个页面都是垂直锁定的。 DetailPanel 组件的任何溢出都在屏幕外并且完全无法访问。

在过去的几天里,我尝试了所有我能想到的布局、滚动、可滚动、全屏、停靠和项目堆叠的组合,但都无济于事。最终,我想在每个 DetailPanel 的底部添加一些按钮,但现在似乎不是特别容易实现。

有什么办法可以做到这一点吗?应该很简单吧?

【问题讨论】:

    标签: extjs scroll touch carousel


    【解决方案1】:

    我找到了答案,并将其放在这里和 Sencha Touch 论坛中。

    原来有一个名为“scrollDock”的未记录配置选项,它使我尝试做的所有事情都按照我的预期工作。

    以下代码现在可以正确滚动:

    Ext.define('Proximity.view.detail.DetailPanel', {
        extend: 'Ext.Panel',
        xtype: 'detailpanel',
    
        config: {
            layout: {
                type: 'vbox',
                align: 'start',
                pack: 'start'
            },
    
            items: [
                {
                    xtype: 'panel',
                    bodyPadding: 15,
                    cls: 'detail-panel',
                    layout: 'fit',
                    scrollDock: 'top',
                    tpl: '<h3 class="detail-name">{name}</h3>' +
                        '<img class="detail-image" src="http://src.sencha.io/-34/x50/{image}"/>' +
                        '<div class="detail-description">\"{description}\"</div>' +
                        '<div class="detail-address">{street}, {suburb}</div>'
    
                },
                // more stuff here
            ]
        }
    });
    

    我真的不确定为什么这不值得记录。也许 Sencha 的人可以启发我们?

    无论如何,我在这里找到了我的线索:http://www.sencha.com/forum/showthread.php?250883-Container-on-top-of-a-list

    干杯!

    【讨论】:

    • 太棒了!非常感谢你发布这个。几天来,我一直在用头撞墙,试图破解它!我欠你一品脱!
    猜你喜欢
    • 1970-01-01
    • 2020-01-22
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多