render method
Renders the elements of this component.
Accepted return types:
dart:html
UINode
andUIElement
.- DIVElement, DOMNode, AsDOMElement and AsDOMNode.
- Future.
- UIAsyncContent.
- String, parsed as
HTML
. - Map (rendered as JSON).
- List with previous types (recursively).
- Function that returns any previous type. Including Function
Implementation
@override
dynamic render() {
content!
..style.textAlign = 'center'
..style.width = width
..style.height = height
..style.overflowY = 'auto';
if (isNotEmptyObject(scrollbarColors)) {
var buttonColor = scrollbarColors![0].trim();
var bgColor =
scrollbarColors!.length > 1 ? scrollbarColors![1].trim() : '';
setElementScrollColors(content!, 8, buttonColor, bgColor);
}
var renderItems = <_MasonryRenderItem>[];
for (var i = 0; i < items.length; ++i) {
var item = items[i];
var renderItem = _MasonryRenderItem(this, i + 1, item);
renderItems.add(renderItem);
}
var renderBounds = content!.getBoundingClientRect();
var lineMaxWidth = renderBounds.width ~/ masonryWidthSizeWithItemsMargin;
var lines = _buildLines(renderItems, lineMaxWidth);
var renderedLines = [];
for (var line in lines) {
var renderedLine = line.render();
renderedLines.add(renderedLine);
}
_renderedLines = lines;
return $div(
style: 'display: table; width: 100%; height: 100%;',
content: $div(
style:
'display: table-cell; text-align: center; vertical-align: middle;',
content: renderedLines));
}