Constraint layout 의 다른점

안드로이드는 뷰를 어떻게 그리는가?

즉, 그리기 과정 내의 모든 단계에서 뷰 트리에 대한 하향식 탐색을 필요로 한다. 그러므로, 각 뷰 계층내에 포함시킨 뷰가 많아질 수록, 디바이스가 뷰를 그리기 위해 더 많은 시간과 연산 능력을 필요로한다.

ConstraintLayout 을 사용하면 수평적인 구조로 Layout 을 구성할수 있다.

하지만, 기존의 RelativeLayout 이 있었는데, 왜 ConstraintLayout 이 더 강력하다고 물어본다면…
ConstraintLayout 은 최근에 개발된 기술이다. 단점이 있으니 개선하려 개발하지 않았겠는가…는 농담반, 진담반이고 다른점을 찾아보도록하자.

ConstraintLayout 의 Group

문제점. ConstraintLayout 의 가장 큰 강점은 뷰를 flat 하게 구성할수 있다는 것이다. 그런데 여러 뷰들을 그룹지어야 하는 경우가 생기면 어떻게 해야할까? (예를 들면 여러 뷰들의 visibility를 한번에 수정하려고 하는 경우)

기존처럼 뷰들을 Layout 으로 감싸면 되겠지만, 그러면 ConstraintLayout을 사용하는 의미가 퇴색된다.

이런경우 Group 을 이용하면 된다.

app:constraint_referenced_ids 을 사용해 뷰를 그룹화 하자.

    <android.support.constraint.Group
        android:id="@+id/winnerplayer_group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:constraint_referenced_ids="winnerPlayerLabel,winnerPlayer" />

    <TextView
        android:id="@+id/winnerPlayerLabel"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@string/result_winner"
        android:textSize="44sp" />

    <TextView
        android:id="@+id/winnerPlayer"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="O"
        android:textSize="44sp" />

Comments