Flutter에서 중국어 글꼴로 바뀔 때 설정
Flutter에 중국어 글꼴을 표시하는 문제가 발생했을 때 일본어 글꼴로 설정하려면 MaterialApp의 다음 속성을 설정하십시오.
dependencies:
flutter:
sdk: flutter
flutter_localizations: # 追加
sdk: flutter # 追加
pub get 통과import 'package:flutter_localizations/flutter_localizations.dart';
MaterialApps로 설정됩니다.const locale = Locale("ja", "JP");
return MaterialApp(
theme: yourTheme,
locale: locale,
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: const [
locale,
],
home: const _YourHomePAge(),
);
이하 2019년에 쓴 Typography
의TextStyle
의fontFamily
와 locale
의 설정은 하지 않아도 일본어로 바뀐다.※ 이후 기술은 2019년 당시 것으로 동작하지 않을 수 있습니다
Flutter에 중국어 글씨체를 표시하는 문제
TextStyle
가 발생하면 설정fontFamily
과 locale
로 피할 수 있다.Text(
style: TextStyle(
fontFamily: "Hiragino Sans",
locale: Locale("ja", "JP"),
),
);
※ 최신 Flutter가 개선되었기 때문에 초기 설정에서는 문제가 없을 수 있습니다.문제가 생기면 아래 코드를 참고하세요.모든
TextStyle
로 설정하면 회전이 번거롭기 때문에 MaterialApp
의theme
로 설정하세요.final themeData = ThemeData(
typography: kTypography, // fontFamily と locale が設定してあるものを指定する
...
);
return MaterialApp(
theme: themeData,
locale: kLocale,
supportedLocales: [kLocale],
home: child,
...
);
상기kTypography
는 다음과 같은 느낌으로 초기화했다.import 'package:flutter/foundation.dart' show defaultTargetPlatform;
import 'package:flutter/material.dart';
// 日本オンリーの場合は固定で
const Locale kLocale = const Locale("ja", "JP");
// AndroidとiOSでフォントが違う
const String kFontFamilyAndroid = null;
const String kFontFamilyCupertino = "Hiragino Sans";
final bool _android = defaultTargetPlatform == TargetPlatform.android;
final String _kFontFamily = _android ? kFontFamilyAndroid : kFontFamilyCupertino;
final TextTheme _whiteTextTheme = _android ? Typography.whiteMountainView : Typography.whiteCupertino;
final TextTheme _blackTextTheme = _android ? Typography.blackMountainView : Typography.blackCupertino;
// Flutter標準のTextThemeをベースにして
// fontFamilyとlocaleを設定したTextStyleとTextThemeで作る
final Typography kTypography = Typography(
platform: defaultTargetPlatform,
white: _textTheme(_whiteTextTheme),
black: _textTheme(_blackTextTheme),
englishLike: _textTheme(Typography.englishLike2014),
dense: _textTheme(Typography.dense2014),
tall: _textTheme(Typography.tall2014),
);
TextStyle _textStyle(TextStyle base) {
return base.copyWith(
fontFamily: _kFontFamily,
locale: kLocale,
textBaseline: TextBaseline.ideographic,
);
}
TextTheme _textTheme(TextTheme base) {
return base.copyWith(
display4: _textStyle(base.display4),
display3: _textStyle(base.display3),
display2: _textStyle(base.display2),
display1: _textStyle(base.display1),
headline: _textStyle(base.headline),
title: _textStyle(base.title),
subhead: _textStyle(base.subhead),
body2: _textStyle(base.body2),
body1: _textStyle(base.body1),
caption: _textStyle(base.caption),
button: _textStyle(base.button),
overline: _textStyle(base.overline),
);
}
이 문장은 Qiita의 문장을 도출했다
Reference
이 문제에 관하여(Flutter에서 중국어 글꼴로 바뀔 때 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/najeira/articles/2019-02-14-qiita-dbf5663d1ed845fb1f51텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)