Я предполагаю, что вы нажимаете на экраны, используя Navigator.push()
или Navigator.pushNamed()
в вашем Drawer
, и что новые экраны, которые вы нажимаете, являются виджетами.если эти новые экраны Scaffolds
, скажем, вместо Columns
, вы можете определить appBar
для каждого из них.Вот пример:
В вашем ящике, куда бы вы ни позвонили Navigator.pushNamed()
:
ListTile(
title: DrawerText(text: 'Second Screen'),
onTap: () {
Navigator.pushNamed(context, 'my_second_screen');
},
),
В вашем main
:
void main() {
runApp(MaterialApp(
home: MyHomeScreen(title: 'MyHomeScreen'),
routes: <String, WidgetBuilder>{
// define the routes
'my_second_screen': (BuildContext context) => MySecondScreen(),
},
));
}
И на экране выMySecondScreen
будет выглядеть следующим образом:
class MySecondScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
// This is your custom app bar specific for this screen.
),
body: SecondScreenBody(),
drawer: MyDrawer(),
);
}
}
Надеюсь, это поможет.