popAllScreensOnTapOfSelectedTab will only work, if we don't define navigatorConfig.initialRoute.
In this example, I removed inicialRoute from home tab. There works very well.
But if you go on second tab, tap then twice, onSelectedTabPressWhenNoScreensPushed will nerver fired. It seems that the part that detects that it is on the first screen works (you can check this if you tap on "go to 2nd screen" and then tap on the "Messages" tab.), however it doesn't understand that it's to call 'onSelectedTabPressWhenNoScreensPushed'.
The funniest thing comes now: still on Messages tab, if you tap on the back button from the top of the screen, and tap on the messages tab, onSelectedTabPressWhenNoScreensPushed will be fired but all screen will be gone.
And if you tap again ...
FlutterError (Looking up a deactivated widget's ancestor is unsafe.
At this point the state of the widget's element tree is no longer stable.
To safely refer to a widget's ancestor in its dispose() method, save a reference to the ancestor by calling dependOnInheritedWidgetOfExactType() in the widget's didChangeDependencies() method.)
Steps to reproduce
run the code and then, tap Home tab. See I/flutter ( ): scrolled to top log.
Tap 2x on Messages tab.
The messages tab will be displayed, but scrolled to top log will never be printed.
Tap on "Go to 2nd screen" and then, tap on Messages tab.
The popAllScreensOnTapOfSelectedTab will be fired returning to previous screen.
Now, tap on back button (to the left of the Messages title) and then, tap on messages tab.
The scrolled to top log will be printed but screen will be gone.
Version
5.2.2
What platforms are you seeing the problem on?
No response
What happened?
popAllScreensOnTapOfSelectedTab
will only work, if we don't definenavigatorConfig.initialRoute
. In this example, I removedinicialRoute
from home tab. There works very well.But if you go on second tab, tap then twice,
onSelectedTabPressWhenNoScreensPushed
will nerver fired. It seems that the part that detects that it is on the first screen works (you can check this if you tap on "go to 2nd screen" and then tap on the "Messages" tab.), however it doesn't understand that it's to call 'onSelectedTabPressWhenNoScreensPushed'.The funniest thing comes now: still on Messages tab, if you tap on the back button from the top of the screen, and tap on the messages tab,
onSelectedTabPressWhenNoScreensPushed
will be fired but all screen will be gone. And if you tap again ...Steps to reproduce
I/flutter ( ): scrolled to top
log.scrolled to top
log will never be printed.popAllScreensOnTapOfSelectedTab
will be fired returning to previous screen.scrolled to top
log will be printed but screen will be gone.Code to reproduce the problem
Relevant log output
Screenshots
No response