Issue
I have a PageView in my app homepage and I want :
- The AppBar changes according to the page
- The BottomAppBar is fixed
The 2 solutions I imagined are :
- The hard one : have one Scaffold with appBar, body and bottomNavigationBar ; use the PageView’s PageController to animate the AppBar content…
- Have 2 nested Scaffold : the main one with body and bottomNavigationBar, and a second one in each PageView’s page, with the AppBar…
So I was wondering, it works but is it "correct" syntactically to have nested Scaffold ?
Thanks a lot !
Solution
Go here: https://api.flutter.dev/flutter/material/Scaffold-class.html
There is a section named Troubleshooting and inside it, you will find this:
Nested Scaffolds
The Scaffold was designed to be the single top level container for a
MaterialApp and it’s typically not necessary to nest scaffolds. For
example in a tabbed UI, where the bottomNavigationBar is a TabBar and
the body is a TabBarView, you might be tempted to make each tab bar
view a scaffold with a differently titled AppBar. It would be better
to add a listener to the TabController that updates the AppBar.
Answered By – Akshar Patel
Answer Checked By – David Goodson (FlutterFixes Volunteer)