1. ホーム
  2. dart

[解決済み] flutter - minHeightから始まりmaxHeightまで成長するボックスを作成する正しい方法

2023-02-03 04:38:27

質問

最小サイズで始まり、(ユーザーがコンテンツを追加している間にコンテンツが成長した場合)最大サイズまで成長し、その後停止するようにしたいコンテナがあります。

このための正しいウィジェットは、次のようにConstrainedBoxのようです。

new ConstrainedBox(
  constraints: new BoxConstraints(
    minHeight: 35.0,
    maxHeight: 60.0,
  ),
  child: ...child with growing content (has default height 25.0)...
),

しかし、これはボックスがmaxHeightで始まる。

私はhasBoundedHeightを使用しようとしましたが、それのための正しい構文を構築するか、またはドキュメントで例を見つけることができないようです。

説明されたようにボックスを動作させるための最良の方法は何ですか?

どのように解決するのですか?

Starts from max/min size"という概念がありません。

そのことは ContrainedBox はその子に制約を追加するだけです。しかし、結局はサイズを選びません。

もし、子供がminSizeにヒットすることを望むなら、彼らは ではなく を消費します。これは、次のように変換されます。 ではなく の幅/高さを持つ double.INFINITY . 事実として double.INFINITY を含む多くのウィジェットのデフォルト値です。 Container .

一方、いくつかのウィジェット、例えば DecoratedBox のようなウィジェットでは、デフォルトのサイズが 0 になっています。 ということは、このコード:

return new ConstrainedBox(
  constraints: new BoxConstraints(
    minHeight: 5.0,
    minWidth: 5.0,
    maxHeight: 30.0,
    maxWidth: 30.0,
  ),
  child: new DecoratedBox(
    decoration: new BoxDecoration(color: Colors.red),
  ),
);

5.0*5.0の赤い正方形を描画します。