Dman_14

Passing Controller

Jan 28th, 2021
731
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class IdeasMainPage extends StatelessWidget {
  2.   @override
  3.   Widget build(BuildContext context) {
  4.     return BaseView<IdeasMainPageController>(onControllerReady: (controller) {
  5.       controller.initialize();
  6.     }, builder: (context, controller, child) {
  7.       return Scaffold(
  8.         backgroundColor: Colors.white.withOpacity(0.9),
  9.         appBar: AppBar(
  10.           title: Text('Ideas'),
  11.         ),
  12.         floatingActionButton: FloatingActionButton(
  13.           onPressed: () {
  14.             Navigator.push(
  15.                 context,
  16.                 MaterialPageRoute(
  17.                     builder: (context) => CreateIdeaPage('Create Idea')));
  18.           },
  19.           child: Icon(Icons.add),
  20.         ),
  21.         body: controller.ideas.isEmpty
  22.             ? NoIdeas()
  23.             : IdeasList(controller: controller),
  24.       );
  25.     });
  26.   }
  27. }
  28.  
  29. class IdeasList extends StatelessWidget {
  30.   final IdeasMainPageController controller;
  31.   const IdeasList({Key key, this.controller}) : super(key: key);
  32.  
  33.   @override
  34.   Widget build(BuildContext context) {
  35.     return ListView.builder(
  36.         itemCount: controller.ideas.length,
  37.         itemBuilder: (context, index) {
  38.           return IdeaCard(
  39.             idea: controller.ideas[index],
  40.           );
  41.         });
  42.   }
  43. }
  44.  
  45. class NoIdeas extends StatelessWidget {
  46.   const NoIdeas({Key key}) : super(key: key);
  47.  
  48.   @override
  49.   Widget build(BuildContext context) {
  50.     return Container();
  51.   }
  52. }
RAW Paste Data