[英]Sencha Touch: Nested list scrolls to top on Back, how can I disable this?
我有一個工作的嵌套列表。 當我單擊“后退”按鈕向后導航時,它將正確加載上一個列表,但默認情況下似乎將其滾動到頂部。
這很煩人,因為說我單擊列表項目#50並單擊返回,它應該顯示列表,該列表位於我在項目1處未向上滾動的位置(在項目50處),這使我一直向下滾動到第50項,繼續探索我的位置。
那么,有沒有一種方法可以取消嵌套列表的“從后滾動到頂部”? 任何以這種方式破解代碼的方式都值得贊賞
是的,您可以將方法scrollToRecord()
方法用於NestedList
back
事件列表。 像這樣
lastActiveList.scrollToRecord(node)
其他方式
您可以使用getScrollable()
設置以前的滾動位置。 您需要使用itemtap
和back
上的事件NestedList
。
在itemtap
您將獲得當前滾動位置並設置為當前活動列表
list.yPosition = list.getScrollable().getScroller().position.y;
在返回按鈕上,您可以再次將相同的上一個滾動位置設置到列表中。
lastActiveList.getScrollable().getScroller().scrollTo(0, lastActiveList.yPosition);
您可以通過工作FIDDLE進行檢查
代碼片段
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);
}
}
});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.