Page Controller Listenable
A listenable that wraps around the PageController
.
This listenable extends ValueListenable<double>
and can be quickly passed into animations, where the type check would fail against the PageController
.
Example
class ExampleWidgetState extends State<ExampleWidget> {
late PageController _pageController;
late PageControllerListenable _pageControllerListenable;
@override
void initState() {
_pageController = PageController();
_pageControllerListenable = PageControllerListenable(_pageController);
super.initState();
}
@override
void dispose() {
_pageControllerListenable.dispose();
_pageController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return WidgetWithSomeAnimation(
animation: _pageControllerListenable,
child: ...
);
}
}
There's a hook included too.
Hook example
class ExampleWidget extends HookWidget {
@override
Widget build(BuildContext context) {
final pageController = usePageController();
final pageControllerListenable = usePageControllerListenable(pageController);
return WidgetWithSomeAnimation(
animation: pageControllerListenable,
child: ...
);
}
}