2012-02-14 11 views
1

カルーセルが定義されています。Sencha Touch `directionLock` - どこが間違っていますか?

Ext.define('rpc.view.bible.indexView', {     
    extend: 'Ext.Carousel', 
    alias: 'widget.bible-indexView', 
    direction: 'horizontal', 
    directionLock: true, 
    config: { 
        items: [{ 
            xtype: 'toolbar', 
            title: 'Bible Reading Plan', 
            docked: 'top' 
        }, { 
            xtype: 'bible-_chapterADayView' 
        }, { 
            xtype: 'bible-_bibleInAYearView' 
        }] 
    }, 
    initialize: function() { 
        console.log('rpc.view.bible.indexView ~ initialize'); 
        this.callParent(); 
    } 
}); 

bible-_chapterADayViewbible-_bibleInAYearView両方がExt.Panelを拡張する部分図です。

彼らが期待通りに働いている、私はthis bug reportに持っていたしかし、スクロール問題は、まだ私はdirectionLockを実装しているにもかかわらず存在します。

どこが私の方向に間違っていますか?実装をロックしますか?


また、次の2つの方法を試しました。多くのテストの後

Ext.define('rpc.view.bible.indexView', {     
    extend: 'Ext.Carousel', 
    alias: 'widget.bible-indexView', 
    config: { 
        scrollable: { 
            direction: 'horizontal', 
            directionLock: true 
        }, 
        items: [{ 
            xtype: 'toolbar', 
            title: 'Bible Reading Plan', 
            docked: 'top' 
        }, { 
            xtype: 'bible-_chapterADayView' 
        }, { 
            xtype: 'bible-_bibleInAYearView' 
        }] 
    }, 
    initialize: function() { 
        console.log('rpc.view.bible.indexView ~ initialize'); 
        this.callParent(); 
    } 
}); 

Ext.define('rpc.view.bible.indexView', {     
    extend: 'Ext.Carousel', 
    alias: 'widget.bible-indexView', 
    scrollable: { 
        direction: 'horizontal', 
        directionLock: true 
    }, 
    config: { 
        items: [{ 
            xtype: 'toolbar', 
            title: 'Bible Reading Plan', 
            docked: 'top' 
        }, { 
            xtype: 'bible-_chapterADayView' 
        }, { 
            xtype: 'bible-_bibleInAYearView' 
        }] 
    }, 
    initialize: function() { 
        console.log('rpc.view.bible.indexView ~ initialize'); 
        this.callParent(); 
    } 
}); 

答えて

1

scrollableがpartialViewではなく、カルーセルに添付されている場合、それが正常に動作するかのように、それが表示されます。

Ext.define('rpc.view.bible.indexView', { 
    extend: 'Ext.Carousel', 
    alias: 'widget.bible-indexView', 
    config: { 
     items: [{ 
      xtype: 'toolbar', 
      title: 'Bible Reading Plan', 
      docked: 'top' 
     }, { 
      xtype: 'bible-_chapterADayView' 
     }, { 
      xtype: 'bible-_bibleInAYearView' 
     }] 
    }, 
    initialize: function() { 
     console.log('rpc.view.bible.indexView ~ initialize'); 
     this.callParent(); 
    } 
}); 


Ext.define('rpc.view.bible._bibleInAYearView', { 
    extend: 'Ext.Panel', 
    alias: 'widget.bible-_bibleInAYearView', 
    config: { 

     // ADD THE SCROLLABLE INFO HERE TO ACHIEVE THE DESIRED RESULT 
     scrollable: { 
      direction: 'vertical', 
      directionLock: true 
     }, 


     items: [{ 
      html: '<span style="float:right;"><i>Swipe for Chapter a Day</i><div class="x-icon-swipe x-icon-swipe-right"></div></span>' 
     }, { 
      xtype: 'container', 
      cls: 'x-panel-rpc', 
      items: [{ 
       html: '<h1>Bible in a Year</h1><i>Reading Plan</i>' 
      }] 
     }, { 
      xtype: 'container', 
      cls: 'x-panel-rpc', 
      items: [{ 
       html: 'Rockin the lower info panel<br><br><br><br><br><br><br><br>more info<br><br><br><br>end' 
      }] 
     }] 
    }, 
    initialize: function() { 
     console.log('rpc.view.bible._bibleInAYearView ~ initialize'); 
     this.callParent(); 
    } 
}); 
+0

directionLockの設定は、常に最も内側のカルーセルにする必要があります。基本的には、内側のスクロール可能領域が外側のスクロール領域よりも優先されることをフレームワークに伝えます。 – rdougan

+0

そして、FYI、* all * configsは、新しいクラスを作成するためにExt.defineを使用するときはconfig:{}ブロック内になければなりません。 Ext.createを使用してインスタンスを作成する場合や、オブジェクトを.add()に渡す場合は、設定をconfigブロックに入れる必要はありません。 – rdougan

+0

@rdouganなので、**すべての**設定は 'extend'、' alias'、 'initialize'を意味しますか? –

関連する問題