返信ありがとうございます。プレーンでシンプルな形の新しいビューを作成しました。下記参照:
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);
上記のビューで期待するのは、最初のロードと縦向きで、上部パネル (黄色) と下部パネル (青色) の 2 つのパネルがあります。通常どおり回転すると、同じ効果が得られます。
しかし、私が求めているのは、横向きに回転すると、上部パネル (黄色) が削除され、下部パネル (青色) が残りのスペースを埋めることです。
次に、縦向きに戻すと、両方のパネルがデザイン サイズに戻ります (flex:1)。
上記のコード (クロムでのテスト) を使用して何が起こっているかというと、上部パネル (黄色) が上部に残っていますが、高さがわずかに小さく、本来のように消えません。
とにかく、私が持っている 2 つのコンソール トレース コマンドに注意してください。これらは、ローテーションで次の読み取り値を示しています。
最初の読み込み後、横向きに回転すると、出力は次のようになります。
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: remove は、削除するコンポーネントの引数を取ります。cmp.remove() は間違った使い方です。
P:ポートレート
P:ポートレート
したがって、風景の回転でこれを見ると、実際にはonorientationchange関数を 4 回起動する方法がいくつかあります。最初の 1 つは既に削除されているため、他の 3 つはエラーで問題ありません。
次に、ポートレートのものを使用すると、横向きの呼び出しとして2つ登録され、次に縦向きの呼び出しとして2つのヒットが登録されます。
これはすべて 1 回の移動で行われるため、何らかの理由でコードの削除と追加が予測どおりに機能せず、回転時に向きが 4 回呼び出されるのを防ぐ方法はありますか??
この開発についてアイデアを持っている人は、気軽に参加してください。
これまで助けてくれてありがとう Si