Loading...
Searching...
No Matches
default_navigation_view_example.dart
Go to the documentation of this file.
1import 'package:flutter/material.dart';
2import 'package:navigine_sdk/navigine_sdk.dart';
3
8class DefaultNavigationViewExample extends StatefulWidget {
9 const DefaultNavigationViewExample({Key? key}) : super(key: key);
10
11 @override
12 State<DefaultNavigationViewExample> createState() => _DefaultNavigationViewExampleState();
13}
14
15class _DefaultNavigationViewExampleState extends State<DefaultNavigationViewExample> {
16 LocationWindow? _locationWindow;
18
19 @override
20 Widget build(BuildContext context) {
22 configController: _configController,
23 onViewCreated: _onViewCreated,
24 );
25 }
26
27 void _onViewCreated(LocationWindow window) {
28 _locationWindow = window;
29 _demonstrateRuntimeConfigUpdate();
30 }
31
35 static Widget demonstrateConstructor() {
36 // [dart_DefaultNavigationView_constructor]
37 // Create with default config
38 final defaultView = DefaultNavigationView(
39 onViewCreated: (LocationWindow window) {
40 // Handle window creation
41 },
42 );
43 // [dart_DefaultNavigationView_constructor]
44
45 // [dart_DefaultNavigationView_constructor_config]
46 // Create with custom configs (configs passed directly)
47 final customView = DefaultNavigationView(
48 viewConfig: DefaultNavigationViewConfig(
49 visibleWidgets: NavigationWidgetVisibility.zoomControls | NavigationWidgetVisibility.followMeButton, // hide floor selector
50 ),
51 followMeButtonConfig: FollowMeButtonConfig(accentColor: Color(0xFF30AAD9)),
52 onViewCreated: (window) {},
53 );
54 // [dart_DefaultNavigationView_constructor_config]
55
56 return customView;
57 }
58
62 static void demonstrateZoomControlsConfig() {
63 // [dart_ZoomControlsConfig]
64 const zoomConfig = ZoomControlsConfig(
65 buttonBackgroundColor: Color(0xF2FAFAFA),
66 textColor: Color(0xFF152D47),
67 buttonWidth: 48,
68 zoomControlsHeight: 96,
69 );
70 // ZoomControlsConfig(zoomInIcon: Icon(Icons.add), zoomOutIcon: Icon(Icons.remove))
71 // [dart_ZoomControlsConfig]
72 }
73
77 static void demonstrateFollowMeButtonConfig() {
78 // [dart_FollowMeButtonConfig]
79 const followMeConfig = FollowMeButtonConfig(
80 accentColor: Color(0xFF30AAD9),
81 buttonBackgroundColor: Color(0xF2FAFAFA),
82 textColor: Color(0xFF152D47),
83 buttonWidth: 48,
84 buttonHeight: 48,
85 );
86 // FollowMeButtonConfig(followMeIcon: Image.asset('assets/icon.png'), followMeIconActive: ...)
87 // [dart_FollowMeButtonConfig]
88 }
89
93 static void demonstrateFloorSelectorViewConfig() {
94 // [dart_FloorSelectorViewConfig]
95 final floorConfig = FloorSelectorViewConfig(
96 accentColor: const Color(0xFF30AAD9),
97 textColor: const Color(0xFF152D47),
98 buttonBackgroundColor: const Color(0xF2FAFAFA),
99 padding: const EdgeInsets.only(left: 16, top: 145),
100 );
101 // [dart_FloorSelectorViewConfig]
102 }
103
107 static Widget demonstrateConfigAtInit() {
108 // [dart_DefaultNavigationView_config]
109 return DefaultNavigationView(
110 viewConfig: DefaultNavigationViewConfig(
111 visibleWidgets: NavigationWidgetVisibility.zoomControls | NavigationWidgetVisibility.followMeButton,
112 ),
113 zoomControlsConfig: ZoomControlsConfig(
114 buttonBackgroundColor: Color(0xF2FAFAFA),
115 ),
116 followMeButtonConfig: FollowMeButtonConfig(
117 accentColor: Color(0xFF30AAD9),
118 ),
119 // followMeButtonConfig: FollowMeButtonConfig(followMeIcon: Image.asset('assets/my_follow_icon.png')),
120 // zoomControlsConfig: ZoomControlsConfig(zoomInIcon: Icon(Icons.add), zoomOutIcon: Icon(Icons.remove)),
121 onViewCreated: (window) {},
122 );
123 // [dart_DefaultNavigationView_config]
124 }
125
126 static void _demonstrateAllConfigs() {
127 demonstrateZoomControlsConfig();
128 demonstrateFollowMeButtonConfig();
129 demonstrateFloorSelectorViewConfig();
130 }
131
135 void _demonstrateRuntimeConfigUpdate() {
136 // [dart_DefaultNavigationView_runtimeConfig]
137 _configController.updateConfig(
138 viewConfig: DefaultNavigationViewConfig(
139 visibleWidgets: NavigationWidgetVisibility.followMeButton,
140 ),
141 followMeConfig: FollowMeButtonConfig(accentColor: Color(0xFFFF0000)),
142 ); // null = keep current; updates apply immediately
143 // [dart_DefaultNavigationView_runtimeConfig]
144 }
145
150 static Widget demonstrateWithController() {
151 // [dart_DefaultNavigationView_widgetAccess]
152 final configController = DefaultNavigationViewController(
153 viewConfig: DefaultNavigationViewConfig(visibleWidgets: NavigationWidgetVisibility.all),
154 );
155 return DefaultNavigationView(
156 configController: configController,
157 onViewCreated: (window) {
158 // Later: configController.updateConfig(viewConfig: ..., zoomConfig: ..., followMeConfig: ..., floorConfig: ...);
159 },
160 );
161 // [dart_DefaultNavigationView_widgetAccess]
162 }
163}