Sencha touch 更改布局方向更改

Sencha touch 更改布局方向更改,sencha-touch,sencha-touch-2.1,Sencha Touch,Sencha Touch 2.1,是否有当前支持的方法根据设备方向更改布局? 以下代码返回此错误: onOrientationChange: function () { this.remove(); this.setLayout( Ext.Viewport.getOrientation() == 'landscape' ? { type: 'hbox', pack: 'center', align: 'stretch' } : { type: 'vbox', align: 'str

是否有当前支持的方法根据设备方向更改布局? 以下代码返回此错误:

 onOrientationChange: function () {
      this.remove();
       this.setLayout( Ext.Viewport.getOrientation() == 'landscape' ?
          { type: 'hbox', pack: 'center', align: 'stretch' } : { type: 'vbox', align: 'stretch', pack: 'center' } );
},
“当前不支持在布局初始化后替换布局。”


请任何人给我建议。

查看GitHub上Sencha Meetcha应用程序的代码

由于不支持替换布局,您可能需要做的是使用一些CSS技巧,当方向发生变化时,删除旧的cls并应用新的cls

我自己也没试过,但这个演示应用程序似乎做得很好

包括代码片段

orientationCls: ['home-portrait', 'home-landscape'],

doOrientation: function() {
    var me = this,
        orientation = Ext.Viewport.getOrientation(),
        letter = orientation.charAt(0),
        items = this.getItems().getRange(),
        i = 0,
        ln = items.length,
        item, el, top, left;

    me.element.removeCls(me.orientationCls);
    me.element.addCls('home-' + orientation);
    for (; i < ln; i++) {
        item = items[i];
        top = item.initialConfig[letter + 'top'];
        left = item.initialConfig[letter + 'left'];
        el = item.element;
        if (el) {
            el.setBox({
                top: top,
                left: left
            });
        }
    }
}
orientationCls:[“家庭肖像”、“家庭景观”],
门方向:函数(){
var me=这个,
方向=Ext.Viewport.getOrientation(),
字母=方向。字符(0),
items=this.getItems().getRange(),
i=0,
ln=项目长度,
项目,el,顶部,左侧;
me.element.removeCls(me.orientationals);
me.element.addCls('home-'+方向);
对于(;i
希望这有帮助