[Android] ConstraintLayout
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입니다.