render method

  1. @override
dynamic render()
override

Renders the elements of this component.

Accepted return types:

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));
}