textAlign property
Implementation
@override
TextAlign get textAlign {
// CSS 'text-align' is inherited via the DOM parent chain. Prefer the DOM
// parent’s renderStyle so out-of-flow render reparenting does not change
// inheritance semantics.
if (_textAlign != null) return _textAlign!;
final dom.Element? domParent = target.parentElement;
if (_cachedInheritedTextAlign != null &&
identical(_cachedInheritedTextAlignParent, domParent)) {
return _cachedInheritedTextAlign!;
}
final TextAlign resolved;
if (domParent != null) {
resolved = domParent.renderStyle.textAlign;
} else {
final RenderStyle? renderParent = parent;
resolved = renderParent?.textAlign ?? TextAlign.start;
}
_cachedInheritedTextAlignParent = domParent;
_cachedInheritedTextAlign = resolved;
return resolved;
}
set
textAlign
(TextAlign? value)
Implementation
set textAlign(TextAlign? value) {
if (_textAlign == value) return;
_textAlign = value;
resetInheritedTextCaches();
_resetInheritedTextCacheForDescendants(TEXT_ALIGN);
// Update all the children flow layout with specified style property not set due to style inheritance.
_markNestFlowLayoutNeedsLayout(this, TEXT_ALIGN);
}