layout method

  1. @override
PwBox layout(
  1. Context context,
  2. BoxConstraints constraints
)
override

layout API.

Implementation

@override
PwBox layout(Context context, BoxConstraints constraints) {
  if (items.isEmpty) {
    return const SizedBox.shrink().layout(context, constraints);
  }
  if (direction == Axis.horizontal) {
    final List<Widget> row = <Widget>[];
    for (int i = 0; i < items.length; i++) {
      if (i > 0) {
        row.add(
          Expanded(
            child: Padding(
              padding: const EdgeInsets.only(top: 8),
              child: Divider(height: 2, thickness: 1, color: mutedColor),
            ),
          ),
        );
      }
      row.add(_step(i, items[i], compact: items.length > 4));
    }
    return Row(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: row,
    ).layout(context, constraints);
  }
  final List<Widget> col = <Widget>[];
  for (int i = 0; i < items.length; i++) {
    if (i > 0) {
      col.add(const SizedBox(height: 10));
    }
    col.add(_step(i, items[i], compact: false));
  }
  return Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    children: col,
  ).layout(context, constraints);
}