home_widget.dart 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. import '/components/header_buttons_component_widget.dart';
  2. import '/flutter_flow/flutter_flow_icon_button.dart';
  3. import '/flutter_flow/flutter_flow_theme.dart';
  4. import '/flutter_flow/flutter_flow_util.dart';
  5. import '/flutter_flow/flutter_flow_widgets.dart';
  6. import '/shared/drawer_component/drawer_component_widget.dart';
  7. import '/uitgaanspaginas/home_uitgaan_slider_component/home_uitgaan_slider_component_widget.dart';
  8. import '/uitgaanspaginas/home_uitgaantabel_kaart_component/home_uitgaantabel_kaart_component_widget.dart';
  9. import 'dart:ui';
  10. import 'package:flutter/material.dart';
  11. import 'package:flutter_spinkit/flutter_spinkit.dart';
  12. import 'package:google_fonts/google_fonts.dart';
  13. import 'package:provider/provider.dart';
  14. import 'home_model.dart';
  15. export 'home_model.dart';
  16. class HomeWidget extends StatefulWidget {
  17. const HomeWidget({super.key});
  18. static String routeName = 'home';
  19. static String routePath = '/home';
  20. @override
  21. State<HomeWidget> createState() => _HomeWidgetState();
  22. }
  23. class _HomeWidgetState extends State<HomeWidget>
  24. with TickerProviderStateMixin, RouteAware {
  25. late HomeModel _model;
  26. final scaffoldKey = GlobalKey<ScaffoldState>();
  27. @override
  28. void initState() {
  29. super.initState();
  30. _model = createModel(context, () => HomeModel());
  31. _model.tabBarController = TabController(
  32. vsync: this,
  33. length: 5,
  34. initialIndex: 0,
  35. )
  36. ..addListener(() => safeSetState(() {}))
  37. ..addListener(() {
  38. debugLogWidgetClass(_model);
  39. });
  40. }
  41. @override
  42. void dispose() {
  43. routeObserver.unsubscribe(this);
  44. _model.dispose();
  45. super.dispose();
  46. }
  47. @override
  48. void didUpdateWidget(HomeWidget oldWidget) {
  49. super.didUpdateWidget(oldWidget);
  50. _model.widget = widget;
  51. }
  52. @override
  53. void didChangeDependencies() {
  54. super.didChangeDependencies();
  55. final route = DebugModalRoute.of(context);
  56. if (route != null) {
  57. routeObserver.subscribe(this, route);
  58. }
  59. debugLogGlobalProperty(context);
  60. }
  61. @override
  62. void didPopNext() {
  63. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  64. setState(() => _model.isRouteVisible = true);
  65. debugLogWidgetClass(_model);
  66. }
  67. }
  68. @override
  69. void didPush() {
  70. if (mounted && DebugFlutterFlowModelContext.maybeOf(context) == null) {
  71. setState(() => _model.isRouteVisible = true);
  72. debugLogWidgetClass(_model);
  73. }
  74. }
  75. @override
  76. void didPop() {
  77. _model.isRouteVisible = false;
  78. }
  79. @override
  80. void didPushNext() {
  81. _model.isRouteVisible = false;
  82. }
  83. @override
  84. Widget build(BuildContext context) {
  85. DebugFlutterFlowModelContext.maybeOf(context)
  86. ?.parentModelCallback
  87. ?.call(_model);
  88. return GestureDetector(
  89. onTap: () {
  90. FocusScope.of(context).unfocus();
  91. FocusManager.instance.primaryFocus?.unfocus();
  92. },
  93. child: Scaffold(
  94. key: scaffoldKey,
  95. backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
  96. drawer: Drawer(
  97. elevation: 16.0,
  98. child: wrapWithModel(
  99. model: _model.drawerComponentModel,
  100. updateCallback: () => safeSetState(() {}),
  101. child: Builder(builder: (_) {
  102. return DebugFlutterFlowModelContext(
  103. rootModel: _model.rootModel,
  104. child: DrawerComponentWidget(),
  105. );
  106. }),
  107. ),
  108. ),
  109. appBar: PreferredSize(
  110. preferredSize: Size.fromHeight(80.0),
  111. child: AppBar(
  112. backgroundColor: FlutterFlowTheme.of(context).info,
  113. iconTheme: IconThemeData(color: Color(0xFFB12727)),
  114. automaticallyImplyLeading: false,
  115. actions: [],
  116. flexibleSpace: FlexibleSpaceBar(
  117. title: Align(
  118. alignment: AlignmentDirectional(0.0, 0.0),
  119. child: Row(
  120. mainAxisSize: MainAxisSize.max,
  121. children: [
  122. FlutterFlowIconButton(
  123. borderRadius: 8.0,
  124. buttonSize: 40.0,
  125. fillColor: Color(0xFFB50808),
  126. icon: Icon(
  127. Icons.dehaze_outlined,
  128. color: FlutterFlowTheme.of(context).info,
  129. size: 24.0,
  130. ),
  131. onPressed: () async {
  132. scaffoldKey.currentState!.openDrawer();
  133. },
  134. ),
  135. ],
  136. ),
  137. ),
  138. background: wrapWithModel(
  139. model: _model.headerButtonsComponentModel,
  140. updateCallback: () => safeSetState(() {}),
  141. child: Builder(builder: (_) {
  142. return DebugFlutterFlowModelContext(
  143. rootModel: _model.rootModel,
  144. child: HeaderButtonsComponentWidget(),
  145. );
  146. }),
  147. ),
  148. centerTitle: true,
  149. expandedTitleScale: 1.0,
  150. ),
  151. bottom: PreferredSize(
  152. preferredSize: Size.fromHeight(70.0),
  153. child: Container(),
  154. ),
  155. toolbarHeight: MediaQuery.sizeOf(context).height * 0.25,
  156. elevation: 2.0,
  157. ),
  158. ),
  159. body: SafeArea(
  160. top: true,
  161. child: Column(
  162. mainAxisSize: MainAxisSize.max,
  163. children: [
  164. Material(
  165. color: Colors.transparent,
  166. elevation: 2.0,
  167. child: Container(
  168. height: 250.0,
  169. decoration: BoxDecoration(
  170. color: Color(0xFFF5A2A2),
  171. border: Border.all(
  172. color: Color(0xFFCAC3C3),
  173. width: 2.0,
  174. ),
  175. ),
  176. child: wrapWithModel(
  177. model: _model.homeUitgaanSliderComponentModel,
  178. updateCallback: () => safeSetState(() {}),
  179. child: Builder(builder: (_) {
  180. return DebugFlutterFlowModelContext(
  181. rootModel: _model.rootModel,
  182. child: HomeUitgaanSliderComponentWidget(
  183. displayid: 'services_1',
  184. ),
  185. );
  186. }),
  187. ),
  188. ),
  189. ),
  190. Expanded(
  191. child: Column(
  192. children: [
  193. Align(
  194. alignment: Alignment(0.0, 0),
  195. child: TabBar(
  196. labelColor: FlutterFlowTheme.of(context).primaryText,
  197. unselectedLabelColor:
  198. FlutterFlowTheme.of(context).secondaryText,
  199. labelStyle:
  200. FlutterFlowTheme.of(context).titleMedium.override(
  201. font: GoogleFonts.interTight(
  202. fontWeight: FlutterFlowTheme.of(context)
  203. .titleMedium
  204. .fontWeight,
  205. fontStyle: FlutterFlowTheme.of(context)
  206. .titleMedium
  207. .fontStyle,
  208. ),
  209. letterSpacing: 0.0,
  210. fontWeight: FlutterFlowTheme.of(context)
  211. .titleMedium
  212. .fontWeight,
  213. fontStyle: FlutterFlowTheme.of(context)
  214. .titleMedium
  215. .fontStyle,
  216. ),
  217. unselectedLabelStyle:
  218. FlutterFlowTheme.of(context).titleMedium.override(
  219. font: GoogleFonts.interTight(
  220. fontWeight: FlutterFlowTheme.of(context)
  221. .titleMedium
  222. .fontWeight,
  223. fontStyle: FlutterFlowTheme.of(context)
  224. .titleMedium
  225. .fontStyle,
  226. ),
  227. letterSpacing: 0.0,
  228. fontWeight: FlutterFlowTheme.of(context)
  229. .titleMedium
  230. .fontWeight,
  231. fontStyle: FlutterFlowTheme.of(context)
  232. .titleMedium
  233. .fontStyle,
  234. ),
  235. indicatorColor: FlutterFlowTheme.of(context).primary,
  236. tabs: [
  237. Tab(
  238. text: FFLocalizations.of(context).getText(
  239. 'eor4c9rz' /* Uitgaan */,
  240. ),
  241. ),
  242. Tab(
  243. text: FFLocalizations.of(context).getText(
  244. 'mx7sn4ne' /* Activiteiten */,
  245. ),
  246. ),
  247. Tab(
  248. text: FFLocalizations.of(context).getText(
  249. 'e6xyyt74' /* Cultuur */,
  250. ),
  251. ),
  252. Tab(
  253. text: FFLocalizations.of(context).getText(
  254. 'uxy2nfok' /* Films */,
  255. ),
  256. ),
  257. Tab(
  258. text: FFLocalizations.of(context).getText(
  259. 'lx77xfrn' /* Jeugd */,
  260. ),
  261. ),
  262. ],
  263. controller: _model.tabBarController,
  264. onTap: (i) async {
  265. [
  266. () async {},
  267. () async {},
  268. () async {},
  269. () async {},
  270. () async {}
  271. ][i]();
  272. },
  273. ),
  274. ),
  275. Expanded(
  276. child: TabBarView(
  277. controller: _model.tabBarController,
  278. children: [
  279. SingleChildScrollView(
  280. child: Column(
  281. mainAxisSize: MainAxisSize.max,
  282. children: [
  283. wrapWithModel(
  284. model: _model
  285. .homeUitgaantabelKaartComponentModel1,
  286. updateCallback: () => safeSetState(() {}),
  287. child: Builder(builder: (_) {
  288. return DebugFlutterFlowModelContext(
  289. rootModel: _model.rootModel,
  290. child:
  291. HomeUitgaantabelKaartComponentWidget(
  292. displayid: 'display_3',
  293. ),
  294. );
  295. }),
  296. ),
  297. ],
  298. ),
  299. ),
  300. SingleChildScrollView(
  301. child: Column(
  302. mainAxisSize: MainAxisSize.max,
  303. children: [
  304. wrapWithModel(
  305. model: _model
  306. .homeUitgaantabelKaartComponentModel2,
  307. updateCallback: () => safeSetState(() {}),
  308. child: Builder(builder: (_) {
  309. return DebugFlutterFlowModelContext(
  310. rootModel: _model.rootModel,
  311. child:
  312. HomeUitgaantabelKaartComponentWidget(
  313. displayid: 'services_4',
  314. ),
  315. );
  316. }),
  317. ),
  318. ],
  319. ),
  320. ),
  321. SingleChildScrollView(
  322. child: Column(
  323. mainAxisSize: MainAxisSize.max,
  324. children: [
  325. wrapWithModel(
  326. model: _model
  327. .homeUitgaantabelKaartComponentModel3,
  328. updateCallback: () => safeSetState(() {}),
  329. child: Builder(builder: (_) {
  330. return DebugFlutterFlowModelContext(
  331. rootModel: _model.rootModel,
  332. child:
  333. HomeUitgaantabelKaartComponentWidget(
  334. displayid: 'services_5',
  335. ),
  336. );
  337. }),
  338. ),
  339. ],
  340. ),
  341. ),
  342. SingleChildScrollView(
  343. child: Column(
  344. mainAxisSize: MainAxisSize.max,
  345. children: [
  346. wrapWithModel(
  347. model: _model
  348. .homeUitgaantabelKaartComponentModel4,
  349. updateCallback: () => safeSetState(() {}),
  350. child: Builder(builder: (_) {
  351. return DebugFlutterFlowModelContext(
  352. rootModel: _model.rootModel,
  353. child:
  354. HomeUitgaantabelKaartComponentWidget(
  355. displayid: 'services_6',
  356. ),
  357. );
  358. }),
  359. ),
  360. ],
  361. ),
  362. ),
  363. SingleChildScrollView(
  364. child: Column(
  365. mainAxisSize: MainAxisSize.max,
  366. children: [
  367. wrapWithModel(
  368. model: _model
  369. .homeUitgaantabelKaartComponentModel5,
  370. updateCallback: () => safeSetState(() {}),
  371. child: Builder(builder: (_) {
  372. return DebugFlutterFlowModelContext(
  373. rootModel: _model.rootModel,
  374. child:
  375. HomeUitgaantabelKaartComponentWidget(
  376. displayid: 'services_7',
  377. ),
  378. );
  379. }),
  380. ),
  381. ],
  382. ),
  383. ),
  384. ],
  385. ),
  386. ),
  387. ],
  388. ),
  389. ),
  390. ],
  391. ),
  392. ),
  393. ),
  394. );
  395. }
  396. }