Список не прокручивается - PullRequest
0 голосов
/ 23 марта 2012

У меня есть панель (макет: 'vbox') с двумя элементами; панель и список.

код

this.currentFolderPnl = new Ext.Panel({
    cls:'document-current-folder-panel',
    html:'/'
});

this.list = new Ext.List({
    scroll: 'vertical',
    cls:'document-list',
    id: 'document-list',
    store: app.stores.Document,
    itemTpl: app.templates.document
});

app.views.DocumentList.superclass.constructor.call(this, {
    selectedCls : "x-item-selected",
    dockedItems: [{
        xtype: 'toolbar',
        ui:'dark',
        title: 'Documents',
        items:[this.backBtn,{xtype:'spacer'},this.newBtn]
    }],
    layout: {type:'vbox',align:'stretch'},
    items: [
        this.currentFolderPnl,
        this.list
    ]
});

Я пробовал много вещей, но ничего не получалось. Может ли кто-нибудь сказать мне, что делать.

Спасибо

1 Ответ

1 голос
/ 24 марта 2012

Прокрутка может появляться только тогда, когда дочерний элемент больше по размеру (либо по высоте, либо по ширине, либо по обоим параметрам), чем родительский элемент. Поскольку вы используете макет vbox, он ожидает высоту для каждого компонента. Таким образом, прокрутка списка появится, когда она уместится внутри панели.

Теперь для вашего случая могут быть два варианта:

Вариант 1:

Вы можете указать высоту для первой панели (которую вы еще не указали), а затем добавить еще одну панель со следующими сведениями:

{
    flex : 1,
    layout : 'fit',
    items : [this.list]
}

Это будет соответствовать списку на второй панели, и прокрутка появится автоматически.

Вариант 2:

Здесь вы используете макет по умолчанию (AutoContainerLayout), т. Е. Не обеспечивает макет. И ваша вышеупомянутая комбинация будет работать (лучше дать высоту первой панели). Уберите прокрутку из списка и добавьте вертикальную прокрутку на главную панель. Таким образом:

this.currentFolderPnl = new Ext.Panel({
    ...
    height : 50
});

this.list = new Ext.List({
    scroll: FALSE,
    ....
});

app.views.DocumentList.superclass.constructor.call(this, {        
    scroll : 'vertical',
    ...
});

Я не проверял вышеуказанную опцию, но она должна работать нормально.

...