# 1. Language/🔰 Kotlin

Kotlin # ConstraintLayout

둥굴둥굴둥굴레차 2022. 7. 8. 17:58

🎈 ConstraintLayout

ConstraintLayout -> 제약을 두는 레이아웃
    - 제약을 통해 뷰를 배치하는 컨테이너 뷰
    - RelativeLayout에서 할 수 있는 모든 것이 가능하다
    - 기능이 엄청나게 많다
    - 반대 방향으로 작용하는 두 개의 제약을 동시에 적용하면 두 제약의 가운데에 배치된다

    1. 상대적 위치 설정 -> RelativeLayout 기능
        * layout_constraint + 제약이름
        * layout_constraintLeft_toLeftOf
            - B Left_toLeftOf A
                -> Left : 속성이 적용되는 뷰의 left
                -> toLeftOf : Of에 올 뷰의 left

                A가 될 수 있는 것들
                    * 아이디로 설정된 뷰
                    * parent
                        예) B Left_toLeftOf parent


    2. 여백
        * 해당 방향으로 여백을 두기 위해서는 그쪽 방향에 반드시 제약이 있어야 한다.
            - layout_marginLeft = 100dp를 하려면 layout_constraintLeft_toRightOf = parent와 같은 제약이 반드시 있어야 한다.

    3. Bias(치우침)
        * layout_constraintHorizontal_bias = 값
        * layout_constraintVertical_bias = 값
            - 값 -> 비율로 설정
                * 1인 경우 100%치우침
                * 0.5인 경우 치우침에 변화가 없음

    4. 비율로 설정하는 방법 -> LinearLayout Weight
        * layout_constraintHorizontal_weight
        * layout_constraintVertical_weight
            -> 위 속성을 사용할 때는 비율을 주려는 세로 또는 가로의 크기는 0dp로 설정해줘야 한다.

    5. 원형 위치 설정 (Circular Positioning) -> 세가지 속성을 모두 사용해주어야 한다. 원형은 Linear이나 relative로는 구현하기 어렵다.
        * layout_constraintCircle : 기준점을 정한다
        * layout_constraintCircleRadius : 두 중심간의 거리
        * layout_constraintCircleAngle : 각도

    6. Chain 속성
        * Spread Chain
        * Spread Inside
        * Packed


※ 언어의 특징
    - LTR(Left to Right) : 글자를 적는 방향이 왼쪽에서 오른쪽 -> Start = Left, End = Right -> 한국어, 영어 거의 모든 언어가 채택.
    - RTL(Right to Left) : 글자를 적는 방향이 오른쪽에서 왼쪽 -> Start = Right, End = Left