이것저것 다 개발

[Android] ConstraintLayout 본문

Android

[Android] ConstraintLayout

용용개발 2018. 6. 12. 01:08

ConstraintLayout

ConstraintLayout은 View 또는 View Group 간의 상대적인 위치 지정을 하여 View를 배치하는 Layout 입니다.


위 화면은 instagram의 화면을 따라서 만든 화면입니다.

화면을 보시면 각 View간 화살표로 연결되어 있는것을 볼 수 있습니다. Android Studio에서 Drag & Drop으로

activity_**.xml Design 탭에서 이런 화면을 간단하게 만들 수 있습니다.

안드로이드 layout의 xml을 다루지 못하는 사람도 누구나 쉽게 Layout을 배치하고 만들 수 있습니다.

Text 탭으로 넘어가게 되면 코드가 작성되있는 것을 볼 수 있습니다.

각 View 객체를 이루고있는 4개의 선에는 끌어당길 수 있는 점 4개가 존재합니다.

4개의 선 가운데 위치한 점을 끌어 다른 View의 상대적인 배치를 할 수 있게됩니다.

View를 Layout의 중앙에 위치하길 원한다면 이 점을 좌우 양끝으로 끌어서

같은 힘으로 당기는 양쪽 스프링이 View를 끌어당기듯 중앙 배치할 수 있습니다.

bias 속성을 사용한다면 좀더 좌측, 좀더 우측으로 View 배치가 가능합니다.


ConstraintLayout과 다른 Layout 또는 View의 다른점 하나를 꼽자면

ConstraintLayout의 layout_width 는 match_parent로 쓰지 않습니다. 0dp(match_constraint)로 표기합니다.


LinearLayout은 수직, 수평 배치로 가장 간단하게 배치가 가능하지만 성능면에서 많이 떨어지고,

RelativeLayout은 성능면에서 우수하지만 View 배치 속성이 많고 복잡하다는 단점이 있습니다.

ConstraintLayout은 이 두가지 Layout의 장점을 모두 취할 수 있는 Layout입니다.

Comments