toggleStream function

Widget toggleStream(
  1. Widget first, {
  2. Key? key,
  3. AlignmentGeometry? alignment,
  4. required ValueStream<bool> isShown,
})

Implementation

Widget toggleStream(Widget first,
    {Key? key,
    AlignmentGeometry? alignment,
    required ValueStream<bool> isShown}) {
  return StreamBuilder<bool>(
    key: key,
    initialData: isShown.get()?.resolve(false) ?? false,
    stream: isShown.flatten() as Stream<bool>?,
    builder: (context, snap) => AnimatedCrossFade(
      firstChild: snap.data == true ? first : emptyBox,
      secondChild: emptyBox,
      alignment: alignment = Alignment.centerLeft,
      crossFadeState: (snap.data == true)
          ? CrossFadeState.showFirst
          : CrossFadeState.showSecond,
      duration: 200.milliseconds,
      layoutBuilder: defaultLayoutBuilder,
    ),
  );
}