nativeFontTextStyle function

TextStyle nativeFontTextStyle({
  1. required String fontFamily,
  2. TextStyle? textStyle,
  3. Color? color,
  4. Color? backgroundColor,
  5. double? fontSize,
  6. FontWeight? fontWeight,
  7. FontStyle? fontStyle,
  8. double? letterSpacing,
  9. double? wordSpacing,
  10. TextBaseline? textBaseline,
  11. double? height,
  12. Locale? locale,
  13. Paint? foreground,
  14. Paint? background,
  15. List<Shadow>? shadows,
  16. List<FontFeature>? fontFeatures,
  17. TextDecoration? decoration,
  18. Color? decorationColor,
  19. TextDecorationStyle? decorationStyle,
  20. double? decorationThickness,
})

Creates a TextStyle that uses the fontFamily for the requested native font.

This function has a side effect of loading the font into the FontLoader from the native bundle file system.

Implementation

TextStyle nativeFontTextStyle({
  required String fontFamily,
  TextStyle? textStyle,
  Color? color,
  Color? backgroundColor,
  double? fontSize,
  FontWeight? fontWeight,
  FontStyle? fontStyle,
  double? letterSpacing,
  double? wordSpacing,
  TextBaseline? textBaseline,
  double? height,
  Locale? locale,
  Paint? foreground,
  Paint? background,
  List<Shadow>? shadows,
  List<FontFeature>? fontFeatures,
  TextDecoration? decoration,
  Color? decorationColor,
  TextDecorationStyle? decorationStyle,
  double? decorationThickness,
}) {
  textStyle ??= const TextStyle();
  textStyle = textStyle.copyWith(
    color: color,
    backgroundColor: backgroundColor,
    fontSize: fontSize,
    fontWeight: fontWeight,
    fontStyle: fontStyle,
    letterSpacing: letterSpacing,
    wordSpacing: wordSpacing,
    textBaseline: textBaseline,
    height: height,
    locale: locale,
    foreground: foreground,
    background: background,
    shadows: shadows,
    fontFeatures: fontFeatures,
    decoration: decoration,
    decorationColor: decorationColor,
    decorationStyle: decorationStyle,
    decorationThickness: decorationThickness,
  );

  final NativeFontVariant variant = NativeFontVariant(
    fontWeight: textStyle.fontWeight ?? FontWeight.w400,
    fontStyle: textStyle.fontStyle ?? FontStyle.normal,
  );
  final NativeFontFamilyWithVariant familyWithVariant = NativeFontFamilyWithVariant(
    family: fontFamily,
    nativeFontVariant: variant,
  );

  nativeFontLoader.loadFontIfNeeded(familyWithVariant);

  return textStyle.copyWith(
    fontFamily: familyWithVariant.toString(),
    fontFamilyFallback: <String>[fontFamily],
  );
}