Flutter/Environment & Convention

[Flutter] Font Setting (pubspec.yaml)

개발자킹콩 2023. 4. 7. 15:47

 

Flutter에서 폰트 설정하는 방법에 대해 간략하게 살펴봅시다.

 

순서는 다음과 같다.

1) 폰트파일을 준비해 안드로이드 스튜디오에 추가합니다.

2) 'pubspec.yaml' 에 해당 폰트의 위치와 정보를 연결합니다.

3) MaterialApp( theme: ThemeData( textTheme: TextTheme( TextStyle 등록 ) ) )

4) Theme.of(context).textTheme 로 MaterialApp의 textTheme 데이터를 불러와 원하는 Text Widget에 설정합니다.

 

 

 


 

 

1) 폰트파일을 준비해 안드로이드 스튜디오에 추가합니다.

 

 

 

 


 

 

2) 'pubspec.yaml' 에 해당 폰트의 위치와 정보를 연결합니다.

 

Weight는 폰트 두께를 의미합니다. 폰트의 두께별로 파일이 따로 제공되기 대문에 같은 폰트라도 다른 두께를 표현하는 파일은 weight 값을 따로 표현해줘야 합니다. 두께값은 100 ~ 900 까지 있으며 두꺼울수록 숫자가 큽니다. ( weight: 500 은 FontWeight.w500 와 같습니다. )

 

# The following section is specific to Flutter packages.
flutter:

  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  assets:
    - asset/img/

  fonts:
    - family: parisienne
      fonts:
        - asset: asset/font/Parisienne-Regular.ttf

    - family: sunflower
      fonts:
        - asset: asset/font/Sunflower-Light.ttf
        - asset: asset/font/Sunflower-Medium.ttf
          weight: 500
        - asset: asset/font/Sunflower-Bold.ttf
          weight: 700

 

 


 

 

3) MaterialApp( theme: ThemeData( textTheme: TextTheme( TextStyle 등록 ) ) )

4) MaterialApp의 textTheme 데이터를 불러와 원하는 Text Widget에 설정합니다.

 

Theme.of(context).textTheme 는 위젯 트리에서 가장 가까운 객체의 값을 찾아냅니다. 따라서 Theme.of(context).textTheme 는 MaterialApp 의 textTheme 데이터를 의미합니다. 조금 더 자세한 정보를 알고 싶다면 아래의 링크를 살펴주세요.

링크: (준비중)

 

 

실제 코드에서는 headline 1, 2, 3, ... 과 bodyText 1, 2, ... 는 이제 권장하지 않는다. headlineLarge, headlineMedium, headlineSmall, bodyLarge, bodyMedium, bodySmall의 사용을 권장합니다. 다음엔 권장하는 스타일로 구현 해보겠습니다.