次の問題があります。上司は、ビューを切り替える間の待ち時間なしで、アプリの応答性を大幅に向上させたいと考えています。これは、に基づく「標準」アプリケーションに使用されていましたが、ユーザーが自分で作成したタブの選択に基づいて、破棄され、異なるコンテンツで再作成されたViewNavigator
1 つだけでした。View
ビューはデフォルトで切り替えられましたSlideViewTransition
。以下で説明するように、わずかに軽量なアプローチで 0.5 秒に短縮されましたが、それでも 0.5 秒は長すぎます。
このアプリは、ユーザーが自分で新しいビューを作成および編集できるタブ付きアプリケーションであるため、タブとそれに対応するタブを作成/編集/削除します。私の現在の実装は、「ビュー」を表示するために使用されるaButtonBar
および aに基づいています。Group
グループのコンテンツは、選択したタブに基づいて作成されます。コンテンツは、「ビュー」を構築するために必要なすべての情報を格納する XML データに基づいています。当然のことながら、コンポーネントの削除と作成には少し時間がかかります (前述の 0.5 秒) ので、別の解決策を探しています。
私が考えたのはViewNavigator
、アプリケーションの起動時にすべての保存されたビューを使用して作成することです。
このように非常に:
for each (var _view:XML in _allViewsConfig.children()) {
var compView:View = new View();
compView.percentHeight = 100;
compView.percentWidth = 100;
compView.name = _view.label;
for each (var _groupElement:XML in _view.vgroup) {
var group:VGroup = new VGroup;
group.percentWidth = 100;
group.percentHeight = 100;
for each (var _windowElement:XML in _groupElement.window) {
var window:WindowContainer = new WindowContainer;
for each (var _componentElement:XML in _windowElement.component) {
var component:UIComponent = _componentManager.create(_componentElement.@type, _componentElement);
window.addElement(component);
}
group.addElement(window);
}
compView.addElement(group);
}
views.addItem(compView);
}
views
作成されたビューを格納するために使用される ArrayList です。
私が今持っている唯一の問題はView
、この ArrayList に格納されている を対応するViewNavigator
.
私は通常の方法で試してみました。つまりnavigation.pushView(_viewCreator.views.getItemAt(0) as Class);
、これは機能しません。エラーも何もありViewNavigator
ません。ただ何もしません。したがって、View
このようにクラスを作成することはできないと思います。
では、どうすればこれを機能させることができますか?また、特にアプリケーションの全体的な動的な性質 (タブに基づく) を考慮すると、これは問題に対する適切な解決策だと思いますか? 当然のことながら、複雑なコンポーネントではスライド トランジションが非常に遅いため、スライド トランジションは完全に無効になります。
ヘルプ、コメント、または考えをいただければ幸いです。
編集:考え直して、Groups
代わりにViewNavigator
andを使用するだけでView
、これがもう少し軽量になり、ビューがプッシュされないという問題が解決するはずです。