Да, вы можете использовать метод scrollToRecord()
для вашего списка на back
событие в NestedList
. Как это
lastActiveList.scrollToRecord(node)
Другой способ
Вы можете установить предыдущую позицию прокрутки, используя getScrollable()
. Вам необходимо использовать itemtap
и back
события NestedList
.
При itemtap
вы получаете текущую позицию прокрутки и устанавливаете в свой текущий активный список
list.yPosition = list.getScrollable().getScroller().position.y;
И на кнопке назад вы снова можете установить ту же самую предыдущую позицию прокрутки для вашего списка.
lastActiveList.getScrollable().getScroller().scrollTo(0, lastActiveList.yPosition);
Можно проверить с рабочим FIDDLE
КОД SNIPPET
Ext.application({
name: 'Sencha',
launch: function() {
Ext.define('ListItem', {
extend: 'Ext.data.Model',
config: {
fields: ['text']
}
});
Ext.create('Ext.data.TreeStore', {
model: 'ListItem',
storeId: 'listItemStore',
defaultRootProperty: 'items',
root: {
items: items
}
});
Ext.create('Ext.NestedList', {
fullscreen: true,
store: 'listItemStore',
listeners: {
itemtap: function(tree, list, index, target, record, e, eOpts) {
list.yPosition = list.getScrollable().getScroller().position.y;
},
back: function(btn, node, lastActiveList) {
lastActiveList.getScrollable().getScroller().scrollTo(0, lastActiveList.yPosition);
}
}
});
}
});