Android Jetpack Compose UI/Compose Layout

    [Compose Column] horizontal alignment 사용해 정렬하기

    Alignment란? Jetpack Compose의 Alignment란 View의 정렬을 지원해주는 변수이다. 즉, 모든 View가 동일한 x축 혹은 y축을 기준으로 정렬되도록 만드는 변수이다. Column의 Alignment Column의 자식 View들은 수직으로 배치되므로 수평으로 정렬(horizontalAlignemnt)이 지원되는데 수평 정렬은 모든 자식 View들의 x위치가 동일하도록 만들어주는 정렬이다. 따라서 같은 y축 상에서 정렬된다(x값 동일하기 때문). Column에서 사용할 수 있는 Alignment의 종류 Column에서는 Alignment.Horizontal을 상속받는 3가지 Alignment를 사용할 수 있다. Alignment.Start (왼쪽 정렬) Alignment.Cen..

    [Compose Column] vertical arrangement 사용해 배치하기

    Arrangement 란? Jetpack Compose의 Arrangement란 View의 배치(Arrangement)을 지원해주는 변수이다. Column에서는 Arrangement.Vertical을 상속받는 아래 6가지 Arrangement를 사용할 수 있다. Arrangement.Top Arrangement.Center Arrangement.Bottom Arrangement.SpaceBetween Arrangement.SpaceAround Arrangement.SpaceEvenly 아래에서 각각이 어떻게 동작하는지 살펴보자. ColumnArrangement 살펴보기 이 옵션들이 어떻게 보이는지 확인하기 위해 다음과 같이 Preview를 정의한다. @Preview(showBackground = true..

    [Compose Layout] 6. ConstraintLayout 사용법 정리

    ConstraintLayout 이란? ConstraintLayout이란 View간의 상대적 제약조건(Constraint)을 만들 수 있는 Layout을 뜻한다. 상대적 제약조건이란 특정 뷰가 다른 View에 대해 위(Top), 아래(Bottom), 왼쪽(Start), 오른쪽(End)에 위치할 수 있는지를 정의한 조건을 뜻한다. Compose 이전 안드로이드에서는 ConstraintLayout을 쓰는 것이 복잡한 View를 성능 저하 없이 만들 수 있는 최선의 방법이었으므로 권장되었는데, Compose에서는 코드의 가독성이 아닌이상 굳이 ConstraintLayout을 쓰는 것이 권장되지 않는다. 이에 대해서 자세히 알고 싶으면 아래 글을 참조 하길 바란다. [Android] ConstraintLayout..

    [Compose] Compose에서 ConstraintLayout을 쓰는 것이 권장 사항이 아닌 이유

    ConstraintLayout이란? ConstraintLayout이란 Layout속의 View들간에 제약조건(Constraints)을 설정함으로써 복잡한 뷰를 만들 수 있도록 설계된 레이아웃이다. 과거 xml에서는 Constraint Layout을 쓰는 것이 권장되었지만, Compose에서는 코드 가독성에 도움이 되는 것이 아니면 권장되지 않는다. 아래에서 이유를 알아보자. 왜 ConstraintLayout을 쓰는 것이 이점이 없어졌을가? 성능상 이점이 없어졌다. 기존 xml로 View를 그릴 때 ConstraintLayout을 이용해 View들간 제약조건을 설정하는 것은 복잡한 레이아웃을 그리기 위해 매우 유용하고 성능면에서 효율적인 방법이었다. 이유는 xml상에서 LinearLayout, Relati..

    [Compose Layout] 5. BoxWithConstraints 사용법 정리

    BoxWithConstraints Layout이란? BoxWithConstraints Layout은 Box Layout의 SuperSet Layout으로 Box의 기능을 모두 포함하면서 Layout의 Constraint에 접근할 수 있도록 만들어진 layout이다. *Constraint란 BoxWithConstraints 레이아웃의 최대 크기, 최소 크기 값이다. BoxWithCosntraints 에서 접근할 수 있는 Constraints BoxWithConstraints에서는 총 5가지 종류의 변수에 접근할 수 있다. 이 5가지 종류의 변수는 화면을 측정하는 방식에 따라 크게 2가지 종류로 나뉠 수 있다. 하나는 dp에 해당하는 값이고, 나머지 하나는 pixel에 해당하는 값이다. 아래 BoxWithC..