SizedBox.shrink와 SizedBox.expand 쓰기
SizedBox.shrink와 SizedBox.expand 쓰기
SizedBox에 height와 width를 둘 다 넣어야 하는데 값이 0 또는 무한대로 정해져 있다면, 그 의도를 더 명확하게 표현할 수 있는 생성자가 있어요. 이 진단은 그런 경우에 SizedBox.shrink나 SizedBox.expand를 쓰도록 알려줍니다.
본문
진단 내용
Dart analyzer는 SizedBox 생성자 호출에서 height와 width 값을 둘 다 지정했는데, 그 값이 0.0이거나 double.infinity인 경우 이 진단을 내보내요. 두 값이 특별한 상수일 때는 전용 생성자가 이미 마련되어 있답니다.
예제
다음 코드는 height와 width가 모두 0.0이라서 이 진단이 발생해요:
import 'package:flutter/material.dart';
Widget build() {
return SizedBox(height: 0.0, width: 0.0, child: const Text(''));
}
다음 코드는 height와 width가 모두 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(''));
}