спасибо за ответ, похоже, что мы можем что-то получить. Я создал новый взгляд, который прост и в простой форме. Смотрите ниже:
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)
Что происходит с использованием приведенного выше кода (тестирование в Chrome), так это то, что верхняя панель (желтая) остается сверху, но немного меньше по высоте и не исчезает так, как должна
В любом случае обратите внимание на две команды трассировки консоли, которые у меня есть, и они показывают следующие показания при вращении:
После первой загрузки я поворачиваюсь в альбомную ориентацию и получаю:
L: пейзаж
L: пейзаж
Попытка удалить компонент, который не существует. Ext.Container: remove принимает аргумент компонента для удаления. cmp.remove () - неверное использование.
L: пейзаж
Попытка удалить компонент, который не существует. Ext.Container: remove принимает аргумент компонента для удаления. cmp.remove () - неверное использование.
L: пейзаж
Попытка удалить компонент, который не существует. Ext.Container: remove принимает аргумент компонента для удаления. cmp.remove () - неверное использование.
Когда я поворачиваюсь назад к портрету, я получаю следующий вывод:
L: пейзаж
Попытка удалить компонент, который не существует. Ext.Container: remove принимает аргумент компонента для удаления. cmp.remove () - неверное использование.
L: пейзаж
Попытка удалить компонент, который не существует. Ext.Container: удаление принимает аргумент
компонента для удаления. cmp.remove () - неверное использование.
P: портрет
P: портрет
Итак, если посмотреть на вращение lanscape, то это на самом деле как-то запускает функцию onorientationchange 4 раза, первый в порядке, остальные три с ошибкой, так как первый уже удалил его, вот что предупреждения, потому что я верю.
Затем с портретными я получаю два, регистрирующихся как вызовы lanscape, затем два хита, регистрирующие портретные вызовы.
Все это одним движением, поэтому почему-то код удаления и добавления работает не так, как предполагалось, и как предотвратить четыре раза вызов ориентации при вращении ??
Если у кого-то есть идеи по разработке этого, присоединяйтесь.
Спасибо за помощь, пока
Si, * 1 058 *