SizedBox.shrink와 SizedBox.expand 쓰기

SizedBox.shrink와 SizedBox.expand 쓰기

SizedBoxheightwidth를 둘 다 넣어야 하는데 값이 0 또는 무한대로 정해져 있다면, 그 의도를 더 명확하게 표현할 수 있는 생성자가 있어요. 이 진단은 그런 경우에 SizedBox.shrinkSizedBox.expand를 쓰도록 알려줍니다.

출처: sized_box_shrink_expand

본문

진단 내용

Dart analyzer는 SizedBox 생성자 호출에서 heightwidth 값을 둘 다 지정했는데, 그 값이 0.0이거나 double.infinity인 경우 이 진단을 내보내요. 두 값이 특별한 상수일 때는 전용 생성자가 이미 마련되어 있답니다.

예제

다음 코드는 heightwidth가 모두 0.0이라서 이 진단이 발생해요:

import 'package:flutter/material.dart';

Widget build() {
  return SizedBox(height: 0.0, width: 0.0, child: const Text(''));
}

다음 코드는 heightwidth가 모두 double.infinity라서 이 진단이 발생해요:

import 'package:flutter/material.dart';

Widget build() {
  return SizedBox(
    height: double.infinity,
    width: double.infinity,
    child: const Text(''),
  );
}

고치는 방법

두 값이 모두 0.0이라면 SizedBox.shrink를 사용하면 돼요:

import 'package:flutter/material.dart';

Widget build() {
  return SizedBox.shrink(child: const Text(''));
}

두 값이 모두 double.infinity라면 SizedBox.expand를 사용하면 돼요:

import 'package:flutter/material.dart';

Widget build() {
  return SizedBox.expand(child: const Text(''));
}

더 알아보기