Skip to content

Commit e65013a

Browse files
committed
Add support for custom text alignment
1 parent 0127603 commit e65013a

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

lib/flutter_html.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class Html extends StatelessWidget {
1616
this.customRender,
1717
this.customEdgeInsets,
1818
this.customTextStyle,
19+
this.customTextAlign,
1920
this.blockSpacing = 14.0,
2021
this.useRichText = true,
2122
this.onImageError,
@@ -49,6 +50,7 @@ class Html extends StatelessWidget {
4950
final CustomRender customRender;
5051
final CustomEdgeInsets customEdgeInsets;
5152
final CustomTextStyle customTextStyle;
53+
final CustomTextAlign customTextAlign;
5254

5355
@override
5456
Widget build(BuildContext context) {
@@ -67,6 +69,7 @@ class Html extends StatelessWidget {
6769
renderNewlines: renderNewlines,
6870
customEdgeInsets: customEdgeInsets,
6971
customTextStyle: customTextStyle,
72+
customTextAlign: customTextAlign,
7073
html: data,
7174
onImageError: onImageError,
7275
linkStyle: linkStyle,

lib/html_parser.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ typedef CustomTextStyle = TextStyle Function(
1010
dom.Node node,
1111
TextStyle baseStyle,
1212
);
13+
typedef CustomTextAlign = TextAlign Function(dom.Element elem);
1314
typedef CustomEdgeInsets = EdgeInsets Function(dom.Node node);
1415
typedef OnLinkTap = void Function(String url);
1516
typedef OnImageTap = void Function();
@@ -150,8 +151,9 @@ class HtmlRichTextParser extends StatelessWidget {
150151
this.onLinkTap,
151152
this.renderNewlines = false,
152153
this.html,
153-
this.customTextStyle,
154154
this.customEdgeInsets,
155+
this.customTextStyle,
156+
this.customTextAlign,
155157
this.onImageError,
156158
this.linkStyle = const TextStyle(
157159
decoration: TextDecoration.underline,
@@ -169,8 +171,9 @@ class HtmlRichTextParser extends StatelessWidget {
169171
final onLinkTap;
170172
final bool renderNewlines;
171173
final String html;
172-
final CustomTextStyle customTextStyle;
173174
final CustomEdgeInsets customEdgeInsets;
175+
final CustomTextStyle customTextStyle;
176+
final CustomTextAlign customTextAlign;
174177
final ImageErrorListener onImageError;
175178
final TextStyle linkStyle;
176179
final ImageProperties imageProperties;
@@ -696,6 +699,9 @@ class HtmlRichTextParser extends StatelessWidget {
696699
// so if we have a block element, reset the parentElement to null
697700
parseContext.parentElement = null;
698701
TextAlign textAlign = TextAlign.left;
702+
if (customTextAlign != null) {
703+
textAlign = customTextAlign(node) ?? textAlign;
704+
}
699705

700706
EdgeInsets _customEdgeInsets;
701707
if (customEdgeInsets != null) {

0 commit comments

Comments
 (0)