[Android/Compose] 1줄 lineHeight

2025. 9. 15. 13:58·Android/Compose
반응형

흔히 안드로이드 컴포즈에서 디자인 시스템을 구성할 때, 디자이너가 준 typography 가이드 중 Line Height 는
컴포즈 TextStyle 의 lineHeight 속성으로 구현하고 있습니다.
그런데 두 줄 이상인 경우에만 정상적으로 해당 속성이 적용되고, 한 줄인 텍스트에 대해서는

간격이 좁다고 느끼신적이 있으신가요?

 

만약 그렇다면 저와 같은 문제에 직면하셨다고 볼 수 있습니다 😮

 

분명 lineHeight 속성을 부여했음에도 도대체 왜 1줄에서는 적용되지 않는걸까요??
이는 아래와 같이 설정된 LineHeightStyle 의 기본값에 의해 발생한 것입니다.

class LineHeightStyle(val alignment: Alignment, val trim: Trim, val mode: Mode) {

    constructor(alignment: Alignment, trim: Trim) : this(alignment, trim, Mode.Fixed)

    companion object {
        /**
         * The default configuration for [LineHeightStyle]:
         * - alignment = [Alignment.Proportional]
         * - trim = [Trim.Both]
         * - mode = [Mode.Fixed]
         */
        val Default =
            LineHeightStyle(alignment = Alignment.Proportional, trim = Trim.Both, mode = Mode.Fixed)
    }

    ...
}

trim 파라미터에 Trim.Both 값이 들어가게 되면서 1줄 일때는 기본적으로 상하단의 여백을 trim 처리하게 됩니다.
만약 아래와 같이 해당 속성을 Trim.None 으로 바꿔준다면,

간단하게 저희가 의도한 디자인을 얻을 수 있게 됩니다.

LineHeightStyle 적용 전 후

추가로 만약 디자이너가 아래와 같이 Line Height 값을 % 단위로 준 경우라면, 위 코드에서도 볼 수 있다시피

.em 단위를 이용하여 쉽게 구현할 수 있습니다.

반응형

'Android > Compose' 카테고리의 다른 글

[Android/Compose] TextUnit 과 Dp  (3) 2025.02.04
'Android/Compose' 카테고리의 다른 글
  • [Android/Compose] TextUnit 과 Dp
서주냥
서주냥
안드로이드 개발 관련 끄적임
  • 서주냥
    AOS가 아니라 안드로이드
    서주냥
  • 전체
    오늘
    어제
    • 전체보기 (59)
      • 알고리즘 (12)
        • 백준 (4)
        • 프로그래머스 (5)
        • 개념 (3)
      • Android (44)
        • Compose (2)
      • Java (2)
      • Kotlin (1)
  • 링크

    • GitHub
  • 인기 글

  • 태그

    코틀린
    클린 아키텍처
    reified
    뷰모델
    BLE
    FusedLocationProviderClient
    투 포인터
    코루틴
    다이나믹 프로그래밍
    Clean Architecture
    안드로이드
    Hilt
    textstyle
    알고리즘
    ConstraintLayout
    자바
    Coroutine Flow
    컴포즈
    Coroutine
    백준
    lineHeight
    viewpager2
    debounce
    RecyclerView
    textunit
    프로그래머스
    최단 경로
    벨만 포드
    블루투스
    SnackBar
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
서주냥
[Android/Compose] 1줄 lineHeight
상단으로

티스토리툴바