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