컬럼이나 로우에 자식 위젯을 넣으면 expansion이라는 속성이 추가됩니다.
확장(expansion)은 디폴트, 유연(flexible), 확장(expanded) 세 가지 옵션으로 나뉘며, 화면 구성 요소의 너비가 고정되어 있을 때는 디폴트를 사용하면 되지만, 나머지 공간을 채우고 싶을 때에는 유연(flexible) 또는 확장(expanded)를 사용합니다.
이러한 확장(expansion) 속성은 컬럼과 로우에서만 볼 수 있습니다.
Column과 Row에서 expanded를 사용하면 위젯은 추가 공간을 항상 모두 채우게 된다고 해요.
하지만, flexible은 위젯이 추가 공간보다 커지면 오버플로를 방지하면서 최대 너비를 설정해준다고 해요.
이렇게 하면 위젯이 부모 위젯에서 주어진 공간보다 커지면 계속 확장될 때 생기는 오류를 방지할 수 있어요.
이를 통해 어떻게 하면 오버플로 없이 추가 공간을 적절히 활용할 수 있는지, 실용적인 예시까지 살펴볼 수 있어요.
채팅 UI를 예시로 들어 Flexible과 Expanded를 사용한 과정을 설명합니다.
Flexible는 실제 텍스트의 길이를 고려해 최대 너비를 지정해줍니다.
따라서 너비를 넘어가면 자동으로 다음 라인으로 넘어가게 됩니다.
다른 방법인 Expanded는 Flexible과 비슷하지만, 남은 공간을 채우기 위해 강제로 차지합니다.
이에 따라 만약 적은 양의 텍스트가 있다면 여전히 전체 길이를 가지게 됩니다.
어떤 방법을 사용할 지는 디자인에 따라 다르다는 점 참고해주세요.
Expanded와 Flexible의 주요한 차이점은, 사용자가 원하는 공간 차지 비율 설정에 있어요요.
Expanded는 남은 공간을 차지하기 위해 사용되고, Flexible은 오버플로 에러를 방지하면서 공간을 유연하게 처리해요요.
추가적인 속성인 Flex값을 설정할 수도 있는데요요.
Expanded는 두 개 이상의 자식 위젯을 동일 비율로 확장할 때 사용하고, Flexible은 유연하게 오버플로 처리를 하고 싶을 때 사용해요요.
Flex 값은 각 자식 위젯이 공간을 어떻게 나눌지 지정할 수 있는 기능이에요.
Expanded 속성이 설정된 두 개의 컨테이너가 있는 행(Row)이 있다고 가정해보면, 오렌지 컨테이너는 첫 번째 컨테이너의 공간의 두 배만큼 차지하도록 하려면 첫 번째 컨테이너에는 flex 값 1을 주고, 오렌지 컨테이너에는 flex 값 2를 주면 되요.
flex 값은 가감이 가능한데, 여기서는 총 flex 값이 3이므로 오렌지 컨테이너는 2/3, 보라색 컨테이너는 1/3을 차지합니다.
하지만 flex 값은 flexible 또는 expanded 속성의 제약 내에서 작동한다는 것이 중요합니다.
'no code low code > flutterflow' 카테고리의 다른 글
18- 정렬 (0) | 2024.02.08 |
---|---|
17- 히든 위젯 (0) | 2024.02.08 |
13-속성 패널 (property panel) (0) | 2024.02.08 |
12- 위젯 소개 (0) | 2024.02.08 |
11-page & storyboard (0) | 2024.02.08 |