본문 바로가기

Develop/Flutter

[Package] FontSize 맞춤 위젯 개발

Flutter를 이용해서 개발하다보면 기본 Text Widget은 항상 아쉬운 면이 있어서 커스터마이징해보았다.


내가 느낀 아쉬운점

  • 부모 Widget의 크기보다 글자가 커지면 Overflow되어 신경쓰지 않는다면 원치않는 결과가 출력됨
  • 부모 영역의 크기가 주어지지 않는다면 글자크기만큼 한없이 커짐

개선점

  • 설정한 fontSize보다 Text가 위치할 영역이 작아 Text를 모두 표현하지 못하는 경우가 발생한다면 자동으로 fontSize를 조절함
  • 부모 영역이 없더라도 설정한 fontSize 등에 맞춰 fontSize를 조절함
  • (보너스) word-break 기능을 넣어두어 단어잘림현상을 방지함

Pub.dev

size_tailored_text

pub package

설치방법

dependencies:
  size_tailored_text: {version}

사용법

SizeTailoredText Widget의 사용법은 Text에서 쉬운 마이그레이션을 지향하여 기본 Text Widget을 따라갑니다.

SizeTailoredText(
    text: "String",
    textStyle: TextStyle(...),
    maxLines: 5,    //default 1
);

적용예시

적용한 모습

Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    children: [
        const SizeTailoredText(
            text: text,
            textStyle: style,
            maxLines: 5,
        ),
        borderContainer(const Text(text, style: style)),
        borderContainer(const SizeTailoredText(
            text: text,
            textStyle: style,
            maxLines: 5,
        ))
    ],
);

Widget borderContainer(Widget child) => Container(
    width: double.infinity,
    height: 200,
    decoration: const BoxDecoration(
        border: Border.fromBorderSide(BorderSide(color: Colors.red))),
    child: child,
);

borderContainer는 일반 Text와 같은 영역을 지정하기 위해 임의로 만든 부모 위젯임.

반응형

'Develop > Flutter' 카테고리의 다른 글

Xcode16 iOS 18 build error  (1) 2024.12.26
[Package] 디자이너와 협업을 위한 개발툴  (0) 2024.09.11
Enum을 더 편하게 사용하기  (0) 2024.06.20
[Flutter] Plugin 비공개 배포  (0) 2024.04.25