簡體   English   中英

Sencha Touch:嵌套列表滾動到“返回”的頂部,如何禁用此功能?

[英]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()設置以前的滾動位置。 您需要使用itemtapback上的事件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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM