getResponsiveWidget method
Implementation
@override
Widget getResponsiveWidget(BuildContext context, ScreenType screenType, double scale) {
double size = 0.0;
TextStyle defaultStyle = DefaultTextStyle.of(context).style;
TextStyle responsiveStyle = DefaultTextStyle.of(context).style;
if(has('style')) {
responsiveStyle = get('style');
}
if(responsiveStyle.fontSize != null) {
size = responsiveStyle.fontSize!;
} else {
size = defaultStyle.fontSize!;
}
if(useCaptionStyle) {
TextStyle captionStyle = Theme.of(context).textTheme.caption!;
responsiveStyle = captionStyle.copyWith(fontSize: size * scale);
} else {
responsiveStyle = responsiveStyle.copyWith(fontSize: size * scale);
}
var cutOff = get('overflow') == TextOverflow.ellipsis ? '...' : '';
var maxLengthNeeded = maxLength != null && text.length > maxLength!;
var responsiveText = maxLengthNeeded ? text.substring(0, maxLength! - cutOff.length) + cutOff : text;
return Text(
responsiveText,
key: get('key'),
style: responsiveStyle,
strutStyle: get('strutStyle'),
textAlign: get('textAlign'),
textDirection: get('textDirection'),
locale: get('locale'),
softWrap: get('softWrap'),
overflow: get('overflow') ?? TextOverflow.clip,
textScaler: get('textScaler'),
maxLines: get('maxLines'),
semanticsLabel: get('semanticsLabel'),
textWidthBasis: get('textWidthBasis'),
textHeightBehavior: get('textHeightBehavior')
);
}