반응형
Flutter에서 VerticalDivider를 사용할 때 흔히 겪는 문제 중 하나는 구분선이 보이지 않는 현상입니다. 이를 해결하는 방법을 알아보겠습니다.
문제점
VerticalDivider는 단독으로 사용하면 높이가 지정되지 않아 화면에 표시되지 않습니다.
Row(
children: [
Text('텍스트1'),
VerticalDivider( // 보이지 않음!
color: Colors.grey,
width: 1,
),
Text('텍스트2'),
],
)
해결방법 1: IntrinsicHeight 사용
IntrinsicHeight 위젯으로 감싸서 자식 위젯들의 높이를 자동으로 계산하도록 합니다.
IntrinsicHeight(
child: Row(
children: [
Text('텍스트1'),
VerticalDivider(
color: Colors.grey,
width: 20, // 구분선의 좌우 여백 포함 전체 폭
thickness: 1, // 실제 구분선 두께
),
Text('텍스트2'),
],
),
)
해결방법 2: Container로 높이 지정
Container를 사용하여 명시적으로 높이를 지정합니다.
Container(
height: 24, // 원하는 높이 지정
child: Row(
children: [
Text('텍스트1'),
VerticalDivider(
color: Colors.grey,
width: 20,
thickness: 1,
),
Text('텍스트2'),
],
),
)
해결방법 3: 간단한 대안. Text 위젯 사용
간단히 텍스트 사이에 구분선을 넣고 싶다면, | 문자를 사용하는 것도 좋은 방법입니다.
Row(
children: [
Text('텍스트1'),
Text(' | ', style: TextStyle(color: Colors.grey)),
Text('텍스트2'),
],
)
VerticalDivider 속성
- width: 구분선의 좌우 여백을 포함한 전체 폭
- thickness: 실제 구분선의 두께
- color: 구분선의 색상
- indent: 위쪽 여백
- endIndent: 아래쪽 여백
주의사항
VerticalDivider는 반드시 Row 또는 Flex 위젯 내에서 사용해야 합니다.
높이가 지정되지 않으면 보이지 않을 수 있으므로, IntrinsicHeight나 Container로 높이를 설정해주세요.
단순한 구분선이 필요한 경우 Text 위젯으로 | 문자를 사용하는 것이 더 간단할 수 있습니다.
반응형
'공부 > 프로그래밍' 카테고리의 다른 글
flutter 무한스크롤: riverpod 상태관리 삽질(스크롤 위치 초기화 및 리빌드 문제) (0) | 2025.03.13 |
---|---|
[Java] enum 으로 되어있는 공통코드를 목록 조회로 공통화 하기 (0) | 2025.03.05 |
TypeScript와 ES6로 Enum처럼 코드 집합 관리하기: 공통 메서드와 타입 안전성 (0) | 2025.03.04 |
tiptap 에디터 focus border 없애기, 영역 클릭시 focus 하기 (0) | 2025.03.03 |
Junit 5 Jupiter vs AssertJ 테스트하는데 어떤걸 쓰면 좋을까? (1) | 2025.02.28 |
댓글