setLineDecorationLayer method
bool
setLineDecorationLayer(
- String layerKey,
- Iterable<
TextLineDecoration> decorations, { - int priority = textDefaultLineDecorationLayerPriority,
Implementation
bool setLineDecorationLayer(
String layerKey,
Iterable<TextLineDecoration> decorations, {
int priority = textDefaultLineDecorationLayerPriority,
}) {
final normalized = decorations
.map((decoration) => decoration.clamp(lineCount))
.toList(growable: false);
final existingLayer = _lineDecorationLayers[layerKey];
if (normalized.isEmpty) {
if (existingLayer == null) {
return false;
}
_lineDecorationLayers.remove(layerKey);
_syncImplicitLineDecorations();
return true;
}
if (existingLayer != null &&
existingLayer.priority == priority &&
_lineDecorationListsEqual(existingLayer.decorations, normalized)) {
return false;
}
_lineDecorationLayers[layerKey] = (
decorations: normalized,
order: existingLayer?.order ?? _nextLineDecorationLayerOrder++,
priority: priority,
);
_syncImplicitLineDecorations();
return true;
}