Uabiri wa matamko na overlay kwa Flutter
Dhibiti kurasa za Navigator 2.0 na overlay ya kiwango cha skrini bila kutumia 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 mipaka 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 onyesha kurasa kupitia callback ya resolver.
Usakinishaji
Mwongozo wa Matumizi
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