// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/material.dart'; Iterable divideTiles({BuildContext context, @required Iterable tiles, Color color, includeLast = false}) sync* { assert(tiles != null); assert(color != null || context != null); final Iterator iterator = tiles.iterator; final bool isNotEmpty = iterator.moveNext(); final Decoration decoration = BoxDecoration( border: Border( bottom: Divider.createBorderSide(context, color: color), ), ); Widget tile = iterator.current; while (iterator.moveNext()) { yield DecoratedBox( position: DecorationPosition.foreground, decoration: decoration, child: tile, ); tile = iterator.current; } if (isNotEmpty) yield includeLast ? DecoratedBox( position: DecorationPosition.foreground, decoration: decoration, child: tile, ) : tile; }