import 'package:flutter/material.dart'; import 'package:info_tren/pages/main/main_page.dart'; class MainPageMaterial extends MainPageShared { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(pageTitle), centerTitle: true, actions: [ PopupMenuButton( icon: const Icon(Icons.more_vert), tooltip: moreOptionsText, itemBuilder: (_) => popupMenu.asMap().entries.map((e) => PopupMenuItem( value: e.key, child: Text(e.value.name), )).toList(), onSelected: (index) { popupMenu[index].action?.call(context); }, ), ], ), body: SafeArea( child: Center( child: Column( mainAxisSize: MainAxisSize.min, children: options.map((option) => Card( color: option.action != null ? Theme.of(context).colorScheme.secondaryContainer : null, child: InkWell( onTap: option.action != null ? () => option.action!(context) : null, child: Column( children: [ Padding( padding: const EdgeInsets.all(8.0), child: Text( option.name, style: Theme.of(context).textTheme.headlineMedium?.copyWith( color: Theme.of(context).colorScheme.onSecondaryContainer, ), textAlign: TextAlign.center, ), ), Padding( padding: const EdgeInsets.all(8.0), child: Text(option.description!), ), ], ), ), )).map((w) => Padding( padding: const EdgeInsets.fromLTRB(4, 2, 4, 2), child: SizedBox( width: double.infinity, child: w, ), )).toList(), ), ), ), ); } }