j2me のレイアウト マネージャーを書きたいと思います。すでにウィジェットとパネルがあります (このコンテキストでは、パネルはウィジェットのセットです)。ここで動的レイアウト管理を追加したいので、最も外側のパネルで doLayout を呼び出すと、内部ウィジェットとパネルがデバイスの幅と高さに応じて再配置されます。
よく知られているレイアウト マネージャーのパターンがあるかどうか疑問に思っていました。
j2me のレイアウト マネージャーを書きたいと思います。すでにウィジェットとパネルがあります (このコンテキストでは、パネルはウィジェットのセットです)。ここで動的レイアウト管理を追加したいので、最も外側のパネルで doLayout を呼び出すと、内部ウィジェットとパネルがデバイスの幅と高さに応じて再配置されます。
よく知られているレイアウト マネージャーのパターンがあるかどうか疑問に思っていました。
各 UI オブジェクトは「最小サイズ (w,h)」を返す必要があります。次に、すべてのオブジェクトをトラバースし、使用可能な領域をチャンクに分割し、各チャンクをオブジェクトに割り当てるアルゴリズムが必要です。オブジェクトの関連性に基づいてツリー分割できます。
私の経験では、レイアウト マネージャーはプラットフォーム (X11、VT100、Windows) とその特性に合わせて進化してきました。しかし、私は共通の特徴を見つけました。これは、設計パターンを GUI の課題に組み込む良い読み物/出発点です。
私が知っている一般的なアプローチは、現在のパネル/スクリーンが常にスタックの一番上にあるように、各 Displayable in Stack コレクションを保持することです。ユーザーが「戻る」ボタンを押すと、前の画面/パネルをスタックの上にポップする必要があります。