작성
·
11
0

Column 위젯을 crossaxisalignment 방향으로 확장하고 싶을 때 column위젯의 상위 위젯인 container 위젯에 width: double.infinity를 사용한다고 하셨습니다. 그런데 궁금한 점은 column위젯과 container위젯은 별개의 위젯인데 container위젯을 확장하면 column위젯도 왜 확장되는 지 모르겠습니다.
그래서 제가 생각한 방법은 column위젯에 crossAxissize: CrossAxisSize.Max위젯을 넣으면 column이 커지니까 column을 감싸는 container도 당연히 커지는 게 맞다고 생각합니다.
답변 2
0
안녕하세요!
휴가중이라 답변이 늦었습니다. 죄송합니다.
1) Column의 정의가 그렇습니다.
2) crossAxisSize를 max로 넣으면 Column이 차지 할 수 있는 크기의 최대치를 차지합니다. 상위 크기를 변경하진 못합니다. 말씀하신대로 작동한다면 하위 위젯이 상위 크기 정의를 마음대로 바꿀 수 있게 됩니다.
파라미터의 정의를 마음대로 생각하시면 안됩니다.
언어와 프레임워크는 헌법이라고 보시면 됩니다. 바꿀 수 있는 사람이 있지만 그게 저희는 아닙니다. 저희는 정의 된 대로 사용할 뿐입니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. kimsangwon29960631님, 질문 주셔서 감사합니다. Column 위젯과 Container의 관계에 대해 혼란스러우셨던 부분을 조금 더 명확히 이해할 수 있도록 설명드리겠습니다.
Flutter에서 Container나 Expanded 같은 위젯들은 자식 위젯에게 부모의 제약 조건을 넘겨주는 역할을 합니다. Column 위젯은 부모 위젯의 가로 제약 조건(crossAxis)을 극대화하여 사용합니다. 즉, 부모 위젯(여기서는 Container)이 width: double.infinity로 지정된 경우, Column은 해당 공간을 사용하려고 합니다. 이는 Flutter의 레이아웃 특성 때문이며, 위젯 트리의 부모-자식 관계에서 부모의 크기 제약이 자식에게 영향을 미칩니다.
Container의 너비를 double.infinity로 설정하면, Column은 이를 최대한으로 사용하려 합니다.Column은 부모의 가로 방향 전체를 차지하려고 하며, 이는 crossAxisAlignment 속성에도 영향을 주게 됩니다.crossAxisSize: CrossAxisSize.max의 역할crossAxisSize: CrossAxisSize.max는 주어진 방향의 전체 공간을 차지하도록 Column의 크기를 지정하는 옵션입니다. 하지만, 이는 Column의 메인 축 방향(mainAxis)에서의 최대화를 의미하며, 부모의 크기 제약 조건 내에서 작동합니다.
결론적으로, Column의 크기 조절은 부모가 허용하는 범위 내에서 이루어집니다. 따라서, Container가 허용하는 공간 내에서 Column이 그것을 최대한 활용하는 것입니다.
이와 관련해서 동일한 주제를 다루는 질문들을 확인해 보실 수 있습니다:
- Column의 가로(crossAxis) 크기 관련
- CrossAxisAlignment 질문
이해에 도움이 되었기를 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.