私は Flex でこの問題に 1 年近く遭遇してきましたが、そのたびに当分の間機能する簡単なハック ソリューションを考え出しています。誰かがより良いアイデアを持っているかどうかを確認したいと思います。
問題の条件は次のとおりです。
|------Container ------------|
| explicitHeight: 400 (or whatever)
| |
| |-------- VBox -------| |
| | percentHeight: 100 | |
| | | |
| | |-Repeater------| | |
| | | Potentially | | |
| | | a lot of stuff. | |
|--|--|---------------|---|---|
問題は、私が望んでいることとは反対に、親の明示的な高さに固執してスクロールバーを作成するのではなく、VBox が常にその内部のコンテンツに対応するように拡張されることです。
私の解決策は、親への参照でハードコードすることでした(または、パーセンテージではなく明示的に設定された値を見つけるために表示リストのはるか上に行く必要があります)。
これをユーティリティクラスで使用することも検討しました:
public static function getFirstExplicitHeightInDisplayList(comp:UIComponent):Number{
if (!isNaN(comp.explicitHeight)) return comp.explicitHeight;
if (comp.parent is UIComponent) return
getFirstExplicitHeightInDisplayList(UIComponent(comp.parent));
else return 0;
}
もっと良い方法があることを教えてください。