Uabiri wa kutangazwa na overlay kwa Flutter.
Dhibiti kurasa za Navigator 2.0 na overlay za eneo la skrini bila Navigator.push/pop au showDialog.
Kurasa ni data
PageEntry huhifadhi metadata pekee. UI huundwa na resolver yako.
Overlay za eneo la skrini
Dialog na bottom sheet zimewekewa kikomo kwa kila skrini bila state ya kimataifa.
Isiyofungamana na state
Tumia setState, Riverpod, Bloc au Provider. Hakuna utegemezi unaohitajika.
Hatua za kwanza
Sakinisha declarative_nav na renderi kurasa kupitia resolver callback.
Usakinishaji
flutter pub add declarative_nav
Mwongozo wa Matumizi
app_root.dart
class AppRoot extends StatefulWidget {
const AppRoot({super.key});
@override
State<AppRoot> createState() => _AppRootState();
}
class _AppRootState extends State<AppRoot> {
OverlayRequest? _overlay;
late List<PageEntry> _pages;
@override
void initState() {
super.initState();
_pages = const [PageEntry(key: 'home', name: '/home')];
}
Widget buildPage(BuildContext context, PageEntry page) {
return HomePage(onOpenDialog: _openDialog);
}
@override
Widget build(BuildContext context) {
return DeclarativePagesNavigator(
pages: _pages,
buildPage: buildPage,
onPopTop: _popTop,
canPopTop: () => _overlay == null,
);
}
}
Dokezo Muhimu
Kifurushi hiki kinaepuka Navigator.push/pop na miito ya showDialog. Dhibiti uabiri na overlay kutoka kwenye state.
Iliyotangulia
MuhtasariInayofuata
Usakinishaji