спасибо за ответ, похоже, что мы можем получить где-то. Я создал новое представление, которое просто и в простой форме. Смотри ниже:
var homePanelTop = new Ext.Panel({ id:'topCont',
cls:'topCont'
});
var homePanelBtm = new Ext.Panel({
id:'btmCont',
cls:'btmCont'
});
App.views.HomeIndex = Ext.extend(Ext.Panel, {
id:'mainlayout',
fullscreen : true,
layout: {
type: 'vbox',
align: 'stretch',
},
defaults:{flex:1},
items: [homePanelTop, homePanelBtm],
suspendLayout: true,
monitorOrientation: true,
orientationchange: this.onOrientationChange,
onOrientationChange: function(orientation, w, h){
this.suspendLayout = false;
if(orientation === 'portrait'){
console.log('P: ' + orientation);
this.add(homePanelTop, true);
} else {
console.log('L: ' + orientation);
this.remove(homePanelTop, false);
}
this.doLayout();
}
});
Ext.reg('HomeIndex', App.views.HomeIndex);
То, что я ожидаю увидеть в приведенном выше представлении, это при первой загрузке и портрете, будет две панели: верхняя панель (желтая) и нижняя панель (синяя). Когда я вращаюсь как обычно, я все равно получаю тот же эффект.
Но что мне нужно, так это то, что при повороте в ландшафт верхняя панель (желтая) удаляется, а нижняя панель (синяя) заполняет остальную часть пространства.
Затем, когда я возвращаюсь к портретной ориентации, обе панели возвращаются к своим размерам (flex: 1).
Что происходит с использованием приведенного выше кода (тестирование в хроме), так это то, что верхняя панель (желтая) остается вверху, но немного меньше по высоте и не исчезает, как должна.
В любом случае обратите внимание на две консольные команды трассировки, которые у меня есть, и они показывают следующие показания при чередовании:
После первой загрузки я переворачиваю изображение в альбомную ориентацию и получаю следующий результат:
П: пейзаж
П: пейзаж
Попытка удалить несуществующий компонент. Ext.Container: remove принимает аргумент удаляемого компонента. cmp.remove() неправильное использование.
П: пейзаж
Попытка удалить несуществующий компонент. Ext.Container: remove принимает аргумент удаляемого компонента. cmp.remove() неправильное использование.
П: пейзаж
Попытка удалить несуществующий компонент. Ext.Container: remove принимает аргумент удаляемого компонента. cmp.remove() неправильное использование.
Когда я поворачиваюсь обратно в книжную ориентацию, я получаю следующий вывод:
П: пейзаж
Попытка удалить несуществующий компонент. Ext.Container: remove принимает аргумент удаляемого компонента. cmp.remove() неправильное использование.
П: пейзаж
Попытка удалить несуществующий компонент. Ext.Container: remove принимает аргумент удаляемого компонента. cmp.remove() неправильное использование.
П: портрет
П: портрет
Итак, глядя на это при вращении lanscape, на самом деле каким-то образом функция onorientationchange срабатывает 4 раза, первый раз в порядке, остальные три с ошибкой, так как первый уже удалил ее, так что предупреждения ибо я верю.
Затем с портретными я получаю два вызова, регистрируемых как вызовы lanscape, а затем два обращения, регистрирующие портретные вызовы.
Все это одним движением, так что это как-то заставляет код удаления и добавления работать не так, как предполагалось, и как предотвратить вызов ориентации четыре раза при вращении ??
Если у кого-то есть идеи по развитию этого, не стесняйтесь присоединиться.
Спасибо за помощь до сих пор Si