TIL/공부

03/25 0dp와 wrap_content, match_parent

sos000303 2024. 3. 25. 21:04
728x90

0dp와 wrap_content, match_parent 세개 모두 레이아웃의 크기를 지정할 때 자주 사용되는 값이다. 이 세 값이 무엇인지 어떻게 사용하는 지 알아보자.

여기 전체 constraint layout에 상하좌우가 constraint된 btn1과 가운데 가이드 라인에 End가, top과 bottom이 전체 constraint layout에 constraint된 btn2가 있다.

wrap_content

둘다 높이와 너비가 wrap_content로 되어있다. 이 wrap_content는 내부에 있는 요소들의 크기에 맞추어 위젯의 크기를 설정한다. btn1의 text의 크기와 양을 바꿔보면

가운데에 있던 btn1의 크기가 내부 text의 크기와 양에 따라 커진것을 볼 수 있다. 

match_parent

btn1과 btn2의 너비를 match_parent로 바꿨다.
match_parent는 부모(parent, 이 경우에는 전체 constraint layout)의 크기에 맞추어 위젯의 크기를 늘린다.
따라서 constraintEnd가 guideline인 btn2도 부모인 전체 constraint layout의 너비에 맞추어 크기가 커지는 것을 확인할 수 있다.

만약 btn이 LinearLayout 등 다른 위젯의 내부에 있다면 해당 위젯의 크기에 맞추어 위젯의 크기를 바꾼다.

0dp

또다시 두 버튼 다 너비를 0dp로 바꿔보았다.
레이아웃 크기에서 0dp는 constraint된 영역 내부에서 가능한 크게 크기를 맞춘다.(너비가 없어지는 것이 아니다.)
양쪽 constraint가 parent라면 크기는 parent와 같게되어 match_parent와 같은 크기를 보여주지만 btn2와 같이 양쪽 constraint에 parent가 아닌게 있다면 그 사이 공간에서 가장 크게 크기를 맞추어준다. 

728x90