Listenable.merge constructor

Listenable.merge(
  1. Iterable<Listenable?> listenables
)

Return a Listenable that triggers when any of the given Listenables themselves trigger.

Once the factory is called, items must not be added or removed from the iterable. Doing so will lead to memory leaks or exceptions.

The iterable may contain nulls; they are ignored.

// Copyright 2013 The Flutter Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// ignore_for_file: avoid_print

import 'package:listen/listen.dart';

void main() {
  final first = ValueNotifier<String>('Hello');
  final second = ValueNotifier<String>('World');

  final merged = Listenable.merge(<Listenable>[first, second]);

  merged.addListener(() {
    print('Merged listenable triggered: ${first.value} ${second.value}');
  });

  first.value = 'Hi'; // Prints: Merged listenable triggered: Hi World
  second.value = 'Dart'; // Prints: Merged listenable triggered: Hi Dart

  first.dispose();
  second.dispose();
}

Implementation

factory Listenable.merge(Iterable<Listenable?> listenables) = _MergingListenable;