senior_design_system 0.4.0
senior_design_system: ^0.4.0 copied to clipboard
Flutter package with Senior Design System widgets.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:senior_design_system/senior_design_system.dart';
import 'views/action_button.example.dart';
import 'views/animation.example.dart';
import 'views/balance.example.dart';
import 'views/button.example.dart';
import 'views/checkbox.example.dart';
import 'views/dropdown_button.example.dart';
import 'views/expansion_panel.example.dart';
import 'views/info_card.example.dart';
import 'views/radio_button.example.dart';
import 'views/snack_bar.example.dart';
import 'views/switch.example.dart';
import 'views/app_bar__tab_bar.example.dart';
import 'views/text_field.example.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Senior Design System Showcase',
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
final PageController _pageController = PageController();
final Map<String, Widget> _pages = {
'Action Button': ActionButtonExample(),
'Animation': AnimationExample(),
'App Bar/Tab Bar': AppBarTabBarExample(),
'Balance': BalanceExample(),
'Button': ButtonExample(),
'Checkbox': CheckboxExample(),
'Dropdown Button': DropdownButtonExample(),
'Expansion Panel': ExpansionPanelExample(),
'Info Card': InfoCardExample(),
'Radio Button': RadioButtonExample(),
'Snack Bar': SnackBarExample(),
'Switch': SwitchExample(),
'Text Field': TextFieldExample(),
};
HomePage({
Key? key,
}) : super(key: key);
ListView _getListViewMenu() {
return ListView(
children: _pages.keys
.toList()
.asMap()
.map((pos, title) => MapEntry(
title,
ListTile(
title: Text(title),
onTap: () => _jumpToPage(page: pos),
)))
.values
.toList(),
);
}
void _jumpToPage({required int page}) {
_pageController.jumpToPage(page);
}
void _previousPage() {
_pageController.previousPage(
duration: Duration(milliseconds: 500),
curve: Curves.easeIn,
);
}
void _nextPage() {
_pageController.nextPage(
duration: Duration(milliseconds: 500),
curve: Curves.easeIn,
);
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: SeniorAppBarPage(
title: 'SDS Mobile',
leading: SeniorAppBarAction(
icon: FontAwesomeIcons.bars,
onPressed: () {},
),
bottom: null,
actions: [
SeniorAppBarAction(
icon: FontAwesomeIcons.arrowLeft,
onPressed: _previousPage,
tooltip: 'Anterior',
),
SeniorAppBarAction(
icon: FontAwesomeIcons.arrowRight,
onPressed: _nextPage,
tooltip: 'Próximo',
),
],
),
drawer: Drawer(child: _getListViewMenu()),
body: PageView.builder(
controller: _pageController,
itemBuilder: (context, position) => _pages.values.toList()[position],
itemCount: _pages.length,
),
),
);
}
}