Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cupertino Navigation Demo with rootNavigator - Multiple hero issue. #25362

Closed
calvinmuller opened this issue Dec 14, 2018 · 12 comments
Closed

Cupertino Navigation Demo with rootNavigator - Multiple hero issue. #25362

calvinmuller opened this issue Dec 14, 2018 · 12 comments
Labels
c: crash Stack traces logged to the console f: cupertino flutter/packages/flutter/cupertino repository f: routes Navigator, Router, and related APIs. framework flutter/packages/flutter repository. See also f: labels.

Comments

@calvinmuller
Copy link

calvinmuller commented Dec 14, 2018

Steps to Reproduce

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: PawzHome(),
    );
  }
}

class PawzHome extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoTabScaffold(
      tabBar: CupertinoTabBar(
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(CupertinoIcons.home),
            title: Text('Home'),
          ),
          BottomNavigationBarItem(
            icon: Icon(CupertinoIcons.conversation_bubble),
            title: Text('Support'),
          ),
        ],
      ),
      tabBuilder: (BuildContext context, int index) {
        switch (index) {
          case 0:
            return CupertinoTabView(
              builder: (BuildContext context) {
                return CupertinoDemoTab1();
              },
              defaultTitle: 'Colors',
            );
            break;
          case 1:
            return CupertinoTabView(
              builder: (BuildContext context) => CupertinoDemoTab2(),
              defaultTitle: 'Support Chat',
            );
            break;
        }
        return null;
      },
    );
  }
}

class CupertinoDemoTab1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      child: CustomScrollView(
        slivers: <Widget>[
          CupertinoSliverNavigationBar(),
          SliverList(
            delegate: SliverChildListDelegate([Tab1RowItem()]),
          ),
        ],
      ),
    );
  }
}

class Tab1RowItem extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      behavior: HitTestBehavior.opaque,
      onTap: () {
        Navigator.of(context).push(CupertinoPageRoute<void>(
          title: "Click me",
          builder: (BuildContext context) => Tab1ItemPage(),
        ));
      },
      child: Padding(padding: EdgeInsets.all(10.0), child: Text("Click me")),
    );
  }
}

class Tab1ItemPage extends StatelessWidget {
  @override
  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
        navigationBar: CupertinoNavigationBar(),
        child: Container(
          child: Center(
            child: CupertinoButton(
              child: const Text(
                'GET',
              ),
              onPressed: () {
                Navigator.of(context, rootNavigator: true).push(
                  CupertinoPageRoute<bool>(
                    fullscreenDialog: true,
                    builder: (BuildContext context) => Tab3Dialog(),
                  ),
                );
              },
            ),
          ),
        ));
  }
}

class CupertinoDemoTab2 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
        navigationBar: CupertinoNavigationBar(),
        child: Container(
          child: Center(
            child: Text("Tab 2"),
          ),
        ));
  }
}

class Tab3Dialog extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar: CupertinoNavigationBar(
        leading: CupertinoButton(
          onPressed: () {
            Navigator.of(context).pop(false);
          },
          child: Text("Ok"),
        ),
      ),
      child: Center(
        child: CupertinoButton(
          color: CupertinoColors.activeBlue,
          child: const Text('Sign in'),
          onPressed: () {
            Navigator.pop(context);
          },
        ),
      ),
    );
  }
}
  1. Click "Click me"
  2. Click the "GET" button.

Logs

flutter: ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════
flutter: The following assertion was thrown during a scheduler callback:
flutter: There are multiple heroes that share the same tag within a subtree.
flutter: Within each subtree for which heroes are to be animated (typically a PageRoute subtree), each Hero
flutter: must have a unique non-null tag.
flutter: In this case, multiple heroes had the following tag: Default Hero tag for Cupertino navigation bars
flutter: with navigator NavigatorState#4e267(tickers: tracking 2 tickers)
flutter: Here is the subtree for one of the offending heroes:
flutter: # Hero(tag: Default Hero tag for Cupertino navigation bars with navigator NavigatorState#4e267(tickers: tracking 2 tickers), state: _HeroState#3711d)
flutter: # └KeyedSubtree-[GlobalKey#c479d]
flutter: #  └_TransitionableNavigationBar-[GlobalKey#f0eee Navigation bar render box]
flutter: #   └ClipRect(renderObject: RenderClipRect#a39d0 relayoutBoundary=up2)
flutter: #    └BackdropFilter(renderObject: RenderBackdropFilter#c6e85 relayoutBoundary=up3)
flutter: #     └DecoratedBox(bg: BoxDecoration(color: Color(0xccf8f8f8), border: Border(bottom: BorderSide(Color(0x4c000000), 0.0, BorderStyle.solid))), renderObject: RenderDecoratedBox#66c39 relayoutBoundary=up4)
flutter: #      └AnnotatedRegion<SystemUiOverlayStyle>(renderObject: RenderAnnotatedRegion<SystemUiOverlayStyle>#27d44 relayoutBoundary=up5)
flutter: #       └Stack(alignment: AlignmentDirectional.topStart, fit: expand, overflow: clip, renderObject: RenderStack#3165b relayoutBoundary=up6)
flutter: #        ├Positioned(left: 0.0, top: 64.0, right: 0.0, bottom: 0.0)
flutter: #        │└ClipRect(renderObject: RenderClipRect#78786)
flutter: #        │ └OverflowBox(alignment: AlignmentDirectional.bottomStart, minHeight: 0.0, maxHeight: Infinity, renderObject: RenderConstrainedOverflowBox#20036)
flutter: #        │  └Padding(padding: EdgeInsetsDirectional(16.0, 0.0, 0.0, 8.0), renderObject: RenderPadding#7e8e1 relayoutBoundary=up1)
flutter: #        │   └SafeArea(avoid left padding, avoid top padding, avoid right padding, avoid bottom padding)
flutter: #        │    └Padding(padding: EdgeInsets.zero, renderObject: RenderPadding#3c6a2 relayoutBoundary=up2)
flutter: #        │     └MediaQuery(MediaQueryData(size: Size(375.0, 667.0), devicePixelRatio: 2.0, textScaleFactor: 1.0, padding: EdgeInsets(0.0, 20.0, 0.0, 50.0), viewInsets: EdgeInsets.zero, alwaysUse24HourFormat: false, accessibleNavigation: falsedisableAnimations: falseinvertColors: falseboldText: false))
flutter: #        │      └AnimatedOpacity(duration: 150ms, opacity: 1.0, state: _AnimatedOpacityState#b08f1(ticker inactive and muted))
flutter: #        │       └FadeTransition(opacity: AnimationController#200dc(⏮ 0.000; paused; silenced; for AnimatedOpacity)➩_Linear➩Tween<double>(1.0 → null)➩1.0, renderObject: RenderAnimatedOpacity#4f57f relayoutBoundary=up3)
flutter: #        │        └Semantics(container: false, properties: SemanticsProperties, label: null, value: null, hint: null, hintOverrides: null, renderObject: RenderSemanticsAnnotations#7ca33 relayoutBoundary=up4)
flutter: #        │         └DefaultTextStyle(inherit: true, color: Color(0xff000000), family: .SF Pro Display, size: 34.0, weight: 700, letterSpacing: 0.2, softWrap: wrapping at box width, overflow: ellipsis, maxLines: 1)
flutter: #        │          └KeyedSubtree-[GlobalKey#c1e6e Large title]
flutter: #        │           └Text("Colors")
flutter: #        │            └RichText(softWrap: wrapping at box width, overflow: ellipsis, maxLines: 1, text: "Colors", renderObject: RenderParagraph#222d4 relayoutBoundary=up5)
flutter: #        └Positioned(left: 0.0, top: 0.0, right: 0.0)
flutter: #         └_PersistentNavigationBar
flutter: #          └SizedBox(height: 64.0, renderObject: RenderConstrainedBox#b2c5b relayoutBoundary=up7)
flutter: #           └SafeArea(avoid left padding, avoid top padding, avoid right padding, avoid bottom padding)
flutter: #            └Padding(padding: EdgeInsets(0.0, 20.0, 0.0, 0.0), renderObject: RenderPadding#761b4)
flutter: #             └MediaQuery(MediaQueryData(size: Size(375.0, 667.0), devicePixelRatio: 2.0, textScaleFactor: 1.0, padding: EdgeInsets(0.0, 0.0, 0.0, 50.0), viewInsets: EdgeInsets.zero, alwaysUse24HourFormat: false, accessibleNavigation: falsedisableAnimations: falseinvertColors: falseboldText: false))
flutter: #              └NavigationToolbar
flutter: #               └CustomMultiChildLayout(renderObject: RenderCustomMultiChildLayoutBox#a4b7e)
flutter: #                ├LayoutId-[<_ToolbarSlot.middle>](id: _ToolbarSlot.middle)
flutter: #                │└AnimatedOpacity(duration: 150ms, opacity: 0.0, state: _AnimatedOpacityState#35893(ticker inactive and muted))
flutter: #                │ └FadeTransition(opacity: AnimationController#78c23(⏮ 0.000; paused; silenced; for AnimatedOpacity)➩_Linear➩Tween<double>(0.0 → null)➩0.0, renderObject: RenderAnimatedOpacity#899e5 relayoutBoundary=up1)
flutter: #                │  └DefaultTextStyle(inherit: true, color: Color(0xff000000), family: .SF UI Text, size: 17.0, weight: 600, letterSpacing: -0.1, softWrap: wrapping at box width, overflow: clip)
flutter: #                │   └Semantics(container: false, properties: SemanticsProperties, label: null, value: null, hint: null, hintOverrides: null, renderObject: RenderSemanticsAnnotations#25aed relayoutBoundary=up2 NEEDS-PAINT)
flutter: #                │    └KeyedSubtree-[GlobalKey#2a105 Middle]
flutter: #                │     └Text("Colors")
flutter: #                │      └RichText(softWrap: wrapping at box width, maxLines: unlimited, text: "Colors", renderObject: RenderParagraph#43df2 relayoutBoundary=up3 NEEDS-PAINT)
flutter: #                └LayoutId-[<_ToolbarSlot.trailing>](id: _ToolbarSlot.trailing)
flutter: #                 └KeyedSubtree-[GlobalKey#ee34d Trailing]
flutter: #                  └Padding(padding: EdgeInsetsDirectional(0.0, 0.0, 16.0, 0.0), renderObject: RenderPadding#0f1c7 relayoutBoundary=up1)
flutter: #                   └DefaultTextStyle(inherit: true, color: Color(0xff007aff), family: .SF UI Text, size: 17.0, letterSpacing: -0.2, softWrap: wrapping at box width, overflow: clip)
flutter: #                    └Builder
flutter: #                     └IconTheme(IconThemeData#330fb(color: Color(0xff007aff), size: 32.0))
flutter: #                      └Row(direction: horizontal, mainAxisAlignment: start, mainAxisSize: min, crossAxisAlignment: center, renderObject: RenderFlex#a5999 relayoutBoundary=up2)
flutter: #                       ├Padding(padding: EdgeInsets(8.0, 0.0, 0.0, 0.0), renderObject: RenderPadding#9ee59 relayoutBoundary=up3)
flutter: #                       └ExitButton
flutter: #                        └CupertinoButton(state: _CupertinoButtonState#70a7a(ticker inactive and muted))
flutter: #                         └GestureDetector
flutter: #                          └RawGestureDetector(state: RawGestureDetectorState#0cd44(gestures: [tap], behavior: opaque))
flutter: #                           └_GestureSemantics(renderObject: RenderSemanticsGestureHandler#a0b22 relayoutBoundary=up3)
flutter: #                            └Listener(listeners: [down], behavior: opaque, renderObject: RenderPointerListener#84de2 relayoutBoundary=up4)
flutter: #                             └Semantics(container: false, properties: SemanticsProperties, label: null, value: null, hint: null, hintOverrides: null, renderObject: RenderSemanticsAnnotations#9f7c3 relayoutBoundary=up5)
flutter: #                              └ConstrainedBox(BoxConstraints(44.0<=w<=Infinity, 44.0<=h<=Infinity), renderObject: RenderConstrainedBox#0d030 relayoutBoundary=up6)
flutter: #                               └FadeTransition(opacity: AnimationController#fb4ce(⏮ 0.000; paused; silenced)➩CurveTween(curve: _DecelerateCurve)➩0.0➩Tween<double>(1.0 → 0.1)➩1.0, renderObject: RenderAnimatedOpacity#cca2b relayoutBoundary=up7)
flutter: #                                └DecoratedBox(bg: BoxDecoration(borderRadius: BorderRadius.circular(8.0)), renderObject: RenderDecoratedBox#9f8fc relayoutBoundary=up8)
flutter: #                                 └Padding(padding: EdgeInsets.zero, renderObject: RenderPadding#6b5d2 relayoutBoundary=up9)
flutter: #                                  └Center(alignment: center, widthFactor: 1.0, heightFactor: 1.0, renderObject: RenderPositionedBox#24652 relayoutBoundary=up10)
flutter: #                                   └DefaultTextStyle(inherit: false, color: Color(0xff007aff), family: .SF UI Text, size: 17.5, weight: 400, letterSpacing: -0.2, baseline: alphabetic, softWrap: wrapping at box width, overflow: clip)
flutter: #                                    └Tooltip("Back", vertical offset: 24.0, position: below, state: _TooltipState#bb1af(ticker inactive and muted))
flutter: #                                     └GestureDetector
flutter: #                                      └RawGestureDetector(state: RawGestureDetectorState#80361(gestures: [long press], behavior: opaque))
flutter: #                                       └Listener(listeners: [down], behavior: opaque, renderObject: RenderPointerListener#73efa relayoutBoundary=up11)
flutter: #                                        └Semantics(container: false, properties: SemanticsProperties, label: null, value: null, hint: null, hintOverrides: null, renderObject: RenderSemanticsAnnotations#d6cf5 relayoutBoundary=up12)
flutter: #                                         └Text("Exit")
flutter: #                                          └RichText(softWrap: wrapping at box width, maxLines: unlimited, text: "Exit", renderObject: RenderParagraph#c994d relayoutBoundary=up13)
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #0      Hero._allHeroesFor.visitor.<anonymous closure> (package:flutter/src/widgets/heroes.dart:210:15)
flutter: #1      Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:220:12)
flutter: #2      _SliverPersistentHeaderElement.visitChildren (package:flutter/src/widgets/sliver_persistent_header.dart:228:14)
flutter: #3      Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #4      ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #5      Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #6      ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #7      Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #8      MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4948:16)
flutter: #9      Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #10     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #11     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #12     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #13     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #14     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #15     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #16     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #17     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #18     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #19     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #20     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #21     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #22     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #23     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #24     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #25     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #26     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #27     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #28     MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4948:16)
flutter: #29     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #30     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #31     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #32     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #33     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #34     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #35     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #36     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #37     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #38     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #39     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #40     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #41     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #42     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #43     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #44     MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4948:16)
flutter: #45     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #46     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #47     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #48     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #49     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #50     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #51     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #52     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #53     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #54     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #55     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #56     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #57     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #58     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #59     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #60     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #61     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #62     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #63     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #64     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #65     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #66     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #67     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #68     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #69     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #70     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #71     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #72     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #73     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #74     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #75     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #76     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #77     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #78     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #79     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #80     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #81     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #82     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #83     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #84     _TheatreElement.visitChildren (package:flutter/src/widgets/overlay.dart:468:16)
flutter: #85     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #86     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #87     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #88     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #89     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #90     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #91     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #92     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #93     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #94     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #95     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #96     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #97     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #98     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #99     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #100    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #101    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #102    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #103    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #104    SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #105    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #106    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #107    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #108    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #109    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #110    SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #111    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #112    MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4948:16)
flutter: #113    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #114    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #115    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #116    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #117    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #118    MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4948:16)
flutter: #119    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #120    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #121    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #122    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #123    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #124    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #125    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #126    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #127    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #128    SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #129    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #130    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
flutter: #131    Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
flutter: #132    SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
flutter: #133    Element.visitChildElements (package:flutter/src/widgets/framework.dart:2686:5)
flutter: #134    Hero._allHeroesFor (package:flutter/src/widgets/heroes.dart:227:13)
flutter: #135    HeroController._startHeroTransition (package:flutter/src/widgets/heroes.dart:655:53)
flutter: #136    HeroController._maybeStartHeroTransition.<anonymous closure> (package:flutter/src/widgets/heroes.dart:630:11)
flutter: #137    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
flutter: #138    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:938:9)
flutter: #139    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
flutter: #140    _invoke (dart:ui/hooks.dart:159:13)
flutter: #141    _drawFrame (dart:ui/hooks.dart:148:3)
flutter: ═════════════════════════════════════════════════════════════════════════════════
Analyzing hero_problem...                                        
No issues found! (ran in 1.4s)
[✓] Flutter (Channel master, v1.1.1-pre.18, on Mac OS X 10.13.6 17G3025, locale en-ZA)
    • Flutter version 1.1.1-pre.18 at /Users/calvinmuller/iStreet/Mobile/FlutterMastre
    • Framework revision e6d216cca8 (30 hours ago), 2018-12-12 21:22:16 -0500
    • Engine revision 571f47457c
    • Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /usr/local/opt/android-sdk/
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    • ios-deploy 1.9.4
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 29.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Ultimate Edition (version 2018.1.5)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 25.0.2
    • Dart plugin version 181.4892.1

[✓] Connected device (1 available)
    • iPhone 8 • 1ECD3898-CC78-472A-9ECA-CF5561A82B29 • ios • iOS 12.1 (simulator)

• No issues found!

@zoechi zoechi added c: crash Stack traces logged to the console framework flutter/packages/flutter repository. See also f: labels. f: cupertino flutter/packages/flutter/cupertino repository f: routes Navigator, Router, and related APIs. waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds labels Dec 14, 2018
@zoechi
Copy link
Contributor

zoechi commented Dec 14, 2018

This is a lot of code. Can you try removing everything that is not absolutely required to reproduce the problem?

@zoechi zoechi added this to the Goals milestone Dec 14, 2018
@calvinmuller
Copy link
Author

my bad, updated.

@no-response no-response bot removed the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Dec 14, 2018
@xster xster added this to Bug in iOS Framework Dec 19, 2018
@calvinmuller
Copy link
Author

hey @xster any news on this guy? Thanks!

@zoechi
Copy link
Contributor

zoechi commented Jan 11, 2019

@calvinmuller Using "add reaction" on the initial comment would increase priority.
To get notified yourself use the [Subscribe] button to the top right instead.

@xster
Copy link
Member

xster commented Jan 11, 2019

I feel like there's a dupe somewhere but I can't find the other bug.

@zoechi
Copy link
Contributor

zoechi commented Jan 12, 2019

Perhaps #25218, #22192 ?

@kerberjg
Copy link

Can confirm this is still happening in Flutter 1.0.0.

Could this be possibly solvable by making the heroTag of CupertinoNavigationBar a required value with no default? Or perhaps using some sort of unique ID generation? I found that setting them manually has indeed fixed the issue for me.

@zoechi
Copy link
Contributor

zoechi commented Feb 10, 2019

@kerberjg Flutter 1.0.0 is from end of November 2018. Please try dev or master channel instead.

@calvinmuller
Copy link
Author

Can confirm that the problem still exists on Flutter (Channel master, v1.2.1-pre.160, on Mac OS X 10.14.2 18C54, locale en-ZA)

@calvinmuller
Copy link
Author

@kerberjg how do you manage to transition between them if they have different heroTags?

@xster
Copy link
Member

xster commented Mar 27, 2019

I think this is fixed by #29069 on head. Feel free to re-open this PR if it's not the case.

@xster xster closed this as completed Mar 27, 2019
@xster xster moved this from Bug to Done in iOS Framework Feb 27, 2020
@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 14, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: crash Stack traces logged to the console f: cupertino flutter/packages/flutter/cupertino repository f: routes Navigator, Router, and related APIs. framework flutter/packages/flutter repository. See also f: labels.
Projects
No open projects
iOS Framework
  
Done
Development

No branches or pull requests

4 participants