multiple_stream_builder 1.1.0
multiple_stream_builder: ^1.1.0 copied to clipboard

Flutter Android iOS Linux macOS web Windows

Flutter widgets to replace multiple nested StreamBuilder widgets

multiple_stream_builder #

Flutter widgets to replace multiple nested StreamBuilder widgets

Installing #

To add use this package in your Flutter project add this to your pubspec.yml

dependencies:
  multiple_stream_builder: ^1.0.0

Note: this package depends on the tuple package from pub.dev. The types from the tuple package are used to pass in arguments to the widgets in this package. However, this package exports the types from the tuple package, so you don't have to install it directly. Installing the tuple package and using its types directly shouldn't cause any issues though.

Usage example #

var stream1 = Stream<int>.periodic(Duration(seconds: 1), (x) => x);
var stream2 = Stream<int>.periodic(Duration(seconds: 2), (x) => x);
var stream3 = Stream<int>.periodic(Duration(seconds: 3), (x) => x);

// Instead of writing out nested StreamBuilders
Widget build(BuildContext context) {
  return StreamBuilder<int>(
    stream: stream1,
    initialData: 0,
    builder: (context, snapshot1) {
      return StreamBuilder<int>(
        stream: stream2,
        initialData: 0,
        builder: (context, snapshot2) {
          return StreamBuilder<int>(
            stream: stream3,
            initialData: 0,
            builder: (context, snapshot3) {
              return Text(
                'stream1: ${snapshot1.data} - stream2: ${snapshot2.data} - stream3: ${snapshot3.data}',
              );
            },
          );
        },
      );
    },
  );
}

// Pass multiple streams into a single StreamBuilder
Widget build(BuildContext context) {
  return StreamBuilder3<int, int, int>(
    streams: Tuple3(stream1, stream2, stream3),
    initialData: Tuple3(0, 0, 0),
    builder: (context, snapshots) {
      return Text(
        'stream1: ${snapshots.item1.data} - stream2: ${snapshots.item2.data} - stream3: ${snapshots.item3.data}',
      );
    },
  );
}
6
likes
110
pub points
64%
popularity

Publisher

levizitting.com

Flutter widgets to replace multiple nested StreamBuilder widgets

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter, tuple

More

Packages that depend on multiple_stream_builder