본문 바로가기
Flutter/Flutter FAQ

Flutter flutter - minHeight에서 시작하여 maxHeight까지 성장하는 상자를 만드는 올바른 방법, flutter - correct way to create a box that starts at minHeight, grows to maxHeight

by 베타코드 2023. 6. 1.
반응형

질문


나는 사용자가 콘텐츠를 추가하는 동안 콘텐츠가 커지면 최소 크기에서 시작하여 최대 크기까지 성장하고 멈추도록하려는 컨테이너가 있습니다.

이 경우 올바른 위젯은 다음과 같은 ConstrainedBox입니다:

new ConstrainedBox(
  constraints: new BoxConstraints(
    minHeight: 35.0,
    maxHeight: 60.0,
  ),
  child: ...grow content를 가진 자식(기본 높이 25.0)...
),

그러나이 방법은 박스를 maxHeight에서 시작합니다.

hasBoundedHeight를 사용해보려고했지만 올바른 구문을 구성하거나 문서에서 예제를 찾을 수 없습니다.

설명 된대로 상자를 작동하는 가장 좋은 방법은 무엇인가요?


답변


"Starts from max/min size"라는 개념은 없습니다.

사실, ContrainedBox는 자식에게만 제약 조건을 추가합니다. 그러나 마지막에는 크기를 선택하지 않습니다.

만약 자식이 minSize에 도달하길 원한다면, 확장해서는 안 됩니다. double.INFINITY의 폭/높이를 가지고 있지 않아야 합니다. 사실, Container를 비롯한 많은 위젯의 기본값이 double.INFINITY입니다.

반면에, 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 크기의 빨간색 정사각형을 렌더링합니다.

반응형

댓글