1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // 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<Widget> divideTiles(
- {BuildContext? context,
- Iterable<Widget>? tiles,
- Color? color,
- includeLast = false}) sync* {
- assert(tiles != null);
- assert(color != null || context != null);
- final Iterator<Widget> 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;
- }
|