diff --git a/lib/src/editor/widgets/default_styles.dart b/lib/src/editor/widgets/default_styles.dart index 87636f63c..a74d5f9d2 100644 --- a/lib/src/editor/widgets/default_styles.dart +++ b/lib/src/editor/widgets/default_styles.dart @@ -247,6 +247,8 @@ class DefaultStyles { this.sizeLarge, this.sizeHuge, this.palette, + this.forceStrutHeight, + this.leadingOffset, }); final DefaultTextBlockStyle? h1; @@ -286,6 +288,11 @@ class DefaultStyles { /// Custom palette of colors final Map? palette; + // 强制设置同高 + final bool? forceStrutHeight; + // 基线位置 + final double? leadingOffset; + static DefaultStyles getInstance(BuildContext context) { final themeData = Theme.of(context); final defaultTextStyle = DefaultTextStyle.of(context); @@ -564,6 +571,8 @@ class DefaultStyles { sizeLarge: other.sizeLarge ?? sizeLarge, sizeHuge: other.sizeHuge ?? sizeHuge, palette: other.palette ?? palette, + forceStrutHeight: other.forceStrutHeight ?? forceStrutHeight, + leadingOffset: other.leadingOffset ?? leadingOffset, ); } } diff --git a/lib/src/editor/widgets/text/text_line.dart b/lib/src/editor/widgets/text/text_line.dart index ee09dcc49..ba5459a91 100644 --- a/lib/src/editor/widgets/text/text_line.dart +++ b/lib/src/editor/widgets/text/text_line.dart @@ -170,8 +170,12 @@ class _TextLineState extends State { } } final textSpan = _getTextSpanForWholeLine(); - final strutStyle = - StrutStyle.fromTextStyle(textSpan.style ?? const TextStyle()); + // 增加强制固定行高 + final strutStyle = StrutStyle.fromTextStyle( + textSpan.style ?? const TextStyle(), + forceStrutHeight: widget.styles.forceStrutHeight, + leading: widget.styles.leadingOffset, + ); final textAlign = _getTextAlign(); final child = RichText( key: _richTextKey,