Created
August 13, 2021 05:50
-
-
Save zmtzawqlp/3cef21c0d9673a6b7b5458d182b4a649 to your computer and use it in GitHub Desktop.
文本扩展
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* @Author: zmtzawqlp | |
* @Date: 2020-01-07 15:26:54 | |
* @Last Modified by: zmtzawqlp | |
* @Last Modified time: 2020-04-07 15:38:18 | |
*/ | |
import 'package:flutter/widgets.dart'; | |
/// Widget相关扩展 | |
extension TextE on Text { | |
/// 文本上对齐 | |
Text alignUp({ | |
@required double fontSize, | |
@required double lineHeight, | |
Color color, | |
}) { | |
return data == null | |
? Text.rich( | |
textSpan, | |
textAlign: textAlign, | |
textDirection: textDirection, | |
textHeightBehavior: textHeightBehavior, | |
textScaleFactor: textScaleFactor, | |
textWidthBasis: textWidthBasis, | |
locale: locale, | |
softWrap: softWrap, | |
overflow: overflow, | |
maxLines: maxLines, | |
semanticsLabel: semanticsLabel, | |
style: style?.copyWith( | |
fontSize: fontSize, | |
height: 1, | |
inherit: style?.inherit, | |
color: color ?? style?.color, | |
backgroundColor: style?.backgroundColor, | |
fontFamily: style?.fontFamily, | |
fontFamilyFallback: style?.fontFamilyFallback, | |
fontWeight: style?.fontWeight, | |
fontStyle: style?.fontStyle, | |
letterSpacing: style?.letterSpacing, | |
wordSpacing: style?.wordSpacing, | |
textBaseline: style?.textBaseline, | |
locale: style?.locale, | |
foreground: style?.foreground, | |
background: style?.background, | |
shadows: style?.shadows, | |
fontFeatures: style?.fontFeatures, | |
decoration: style?.decoration, | |
decorationColor: style?.decorationColor, | |
decorationStyle: style?.decorationStyle, | |
decorationThickness: style?.decorationThickness, | |
debugLabel: style?.debugLabel, | |
) ?? | |
TextStyle( | |
fontSize: fontSize, | |
height: 1, | |
color: color, | |
), | |
strutStyle: StrutStyle( | |
height: lineHeight / fontSize, | |
), | |
) | |
: Text( | |
data, | |
textAlign: textAlign, | |
textDirection: textDirection, | |
textHeightBehavior: textHeightBehavior, | |
textScaleFactor: textScaleFactor, | |
textWidthBasis: textWidthBasis, | |
locale: locale, | |
softWrap: softWrap, | |
overflow: overflow, | |
maxLines: maxLines, | |
semanticsLabel: semanticsLabel, | |
style: style?.copyWith( | |
fontSize: fontSize, | |
height: 1, | |
inherit: style?.inherit, | |
color: color ?? style?.color, | |
backgroundColor: style?.backgroundColor, | |
fontFamily: style?.fontFamily, | |
fontFamilyFallback: style?.fontFamilyFallback, | |
fontWeight: style?.fontWeight, | |
fontStyle: style?.fontStyle, | |
letterSpacing: style?.letterSpacing, | |
wordSpacing: style?.wordSpacing, | |
textBaseline: style?.textBaseline, | |
locale: style?.locale, | |
foreground: style?.foreground, | |
background: style?.background, | |
shadows: style?.shadows, | |
fontFeatures: style?.fontFeatures, | |
decoration: style?.decoration, | |
decorationColor: style?.decorationColor, | |
decorationStyle: style?.decorationStyle, | |
decorationThickness: style?.decorationThickness, | |
debugLabel: style?.debugLabel, | |
) ?? | |
TextStyle( | |
fontSize: fontSize, | |
height: 1, | |
color: color, | |
), | |
strutStyle: StrutStyle( | |
height: lineHeight / fontSize, | |
), | |
); | |
} | |
/// 文本下对齐 | |
Text alignDown({ | |
@required double fontSize, | |
@required double lineHeight, | |
Color color, | |
}) { | |
final double height = 1.0 - (lineHeight - fontSize) / 2.0 / lineHeight; | |
return data == null | |
? Text.rich( | |
textSpan, | |
textAlign: textAlign, | |
textDirection: textDirection, | |
textHeightBehavior: textHeightBehavior, | |
textScaleFactor: textScaleFactor, | |
textWidthBasis: textWidthBasis, | |
locale: locale, | |
softWrap: softWrap, | |
overflow: overflow, | |
maxLines: maxLines, | |
semanticsLabel: semanticsLabel, | |
style: style?.copyWith( | |
fontSize: fontSize, | |
height: height, | |
inherit: style?.inherit, | |
color: color ?? style?.color, | |
backgroundColor: style?.backgroundColor, | |
fontFamily: style?.fontFamily, | |
fontFamilyFallback: style?.fontFamilyFallback, | |
fontWeight: style?.fontWeight, | |
fontStyle: style?.fontStyle, | |
letterSpacing: style?.letterSpacing, | |
wordSpacing: style?.wordSpacing, | |
textBaseline: style?.textBaseline, | |
locale: style?.locale, | |
foreground: style?.foreground, | |
background: style?.background, | |
shadows: style?.shadows, | |
fontFeatures: style?.fontFeatures, | |
decoration: style?.decoration, | |
decorationColor: style?.decorationColor, | |
decorationStyle: style?.decorationStyle, | |
decorationThickness: style?.decorationThickness, | |
debugLabel: style?.debugLabel, | |
) ?? | |
TextStyle( | |
fontSize: fontSize, | |
height: height, | |
color: color, | |
), | |
) | |
: Text( | |
data, | |
textAlign: textAlign, | |
textDirection: textDirection, | |
textHeightBehavior: textHeightBehavior, | |
textScaleFactor: textScaleFactor, | |
textWidthBasis: textWidthBasis, | |
locale: locale, | |
softWrap: softWrap, | |
overflow: overflow, | |
maxLines: maxLines, | |
semanticsLabel: semanticsLabel, | |
style: style?.copyWith( | |
fontSize: fontSize, | |
height: height, | |
inherit: style?.inherit, | |
color: color ?? style?.color, | |
backgroundColor: style?.backgroundColor, | |
fontFamily: style?.fontFamily, | |
fontFamilyFallback: style?.fontFamilyFallback, | |
fontWeight: style?.fontWeight, | |
fontStyle: style?.fontStyle, | |
letterSpacing: style?.letterSpacing, | |
wordSpacing: style?.wordSpacing, | |
textBaseline: style?.textBaseline, | |
locale: style?.locale, | |
foreground: style?.foreground, | |
background: style?.background, | |
shadows: style?.shadows, | |
fontFeatures: style?.fontFeatures, | |
decoration: style?.decoration, | |
decorationColor: style?.decorationColor, | |
decorationStyle: style?.decorationStyle, | |
decorationThickness: style?.decorationThickness, | |
debugLabel: style?.debugLabel, | |
) ?? | |
TextStyle( | |
fontSize: fontSize, | |
height: height, | |
color: color, | |
), | |
); | |
} | |
/// 设置行高 | |
Text withLineHeight({ | |
@required double fontSize, | |
@required double lineHeight, | |
Color color, | |
}) { | |
return data == null | |
? Text.rich( | |
textSpan, | |
textAlign: textAlign, | |
textDirection: textDirection, | |
textHeightBehavior: textHeightBehavior, | |
textScaleFactor: textScaleFactor, | |
textWidthBasis: textWidthBasis, | |
locale: locale, | |
softWrap: softWrap, | |
overflow: overflow, | |
maxLines: maxLines, | |
semanticsLabel: semanticsLabel, | |
style: style?.copyWith( | |
fontSize: fontSize, | |
height: lineHeight / fontSize, | |
inherit: style?.inherit, | |
color: color ?? style?.color, | |
backgroundColor: style?.backgroundColor, | |
fontFamily: style?.fontFamily, | |
fontFamilyFallback: style?.fontFamilyFallback, | |
fontWeight: style?.fontWeight, | |
fontStyle: style?.fontStyle, | |
letterSpacing: style?.letterSpacing, | |
wordSpacing: style?.wordSpacing, | |
textBaseline: style?.textBaseline, | |
locale: style?.locale, | |
foreground: style?.foreground, | |
background: style?.background, | |
shadows: style?.shadows, | |
fontFeatures: style?.fontFeatures, | |
decoration: style?.decoration, | |
decorationColor: style?.decorationColor, | |
decorationStyle: style?.decorationStyle, | |
decorationThickness: style?.decorationThickness, | |
debugLabel: style?.debugLabel, | |
) ?? | |
TextStyle( | |
fontSize: fontSize, | |
height: lineHeight / fontSize, | |
color: color, | |
), | |
) | |
: Text( | |
data, | |
textAlign: textAlign, | |
textDirection: textDirection, | |
textHeightBehavior: textHeightBehavior, | |
textScaleFactor: textScaleFactor, | |
textWidthBasis: textWidthBasis, | |
locale: locale, | |
softWrap: softWrap, | |
overflow: overflow, | |
maxLines: maxLines, | |
semanticsLabel: semanticsLabel, | |
style: style?.copyWith( | |
fontSize: fontSize, | |
height: lineHeight / fontSize, | |
inherit: style?.inherit, | |
color: color ?? style?.color, | |
backgroundColor: style?.backgroundColor, | |
fontFamily: style?.fontFamily, | |
fontFamilyFallback: style?.fontFamilyFallback, | |
fontWeight: style?.fontWeight, | |
fontStyle: style?.fontStyle, | |
letterSpacing: style?.letterSpacing, | |
wordSpacing: style?.wordSpacing, | |
textBaseline: style?.textBaseline, | |
locale: style?.locale, | |
foreground: style?.foreground, | |
background: style?.background, | |
shadows: style?.shadows, | |
fontFeatures: style?.fontFeatures, | |
decoration: style?.decoration, | |
decorationColor: style?.decorationColor, | |
decorationStyle: style?.decorationStyle, | |
decorationThickness: style?.decorationThickness, | |
debugLabel: style?.debugLabel, | |
) ?? | |
TextStyle( | |
fontSize: fontSize, | |
height: lineHeight / fontSize, | |
color: color, | |
), | |
); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment