class SettingsScreen extends StatefulWidget { @override State createState() => _SettingsScreenState(); }
class _SettingsScreenState extends State { // Состояние хранится прямо здесь, без провайдеров String selectedMapType = 'OpenStreetMap'; bool isLoading = false;
Зацените код
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(
ChangeNotifierProvider(
create: (context) => GalleryProvider(),
child: MyApp(),
),
);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Geo Album',
theme: ThemeData.dark().copyWith(
scaffoldBackgroundColor: Colors.grey[900],
appBarTheme: AppBarTheme(
backgroundColor: Colors.grey[900],
elevation: 2,
centerTitle: true,
iconTheme: IconThemeData(color: Colors.white),
),
cardTheme: CardTheme(
color: Colors.grey[850],
elevation: 4,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
),
),
debugShowCheckedModeBanner: false,
initialRoute: '/',
routes: {
'/': (context) => HomeScreen(),
'/settings': (context) => SettingsScreen(),
},
);
}
}
class SettingsScreen extends StatefulWidget {
@override
State createState() => _SettingsScreenState();
}
class _SettingsScreenState extends State {
// Состояние хранится прямо здесь, без провайдеров
String selectedMapType = 'OpenStreetMap';
bool isLoading = false;
String getMapUrl(String type) {
switch (type) {
case 'Satellite':
return 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}';
case 'Terrain':
return 'https://tile.opentopomap.org/{z}/{x}/{y}.png';
default:
return 'https://tile.openstreetmap.org/{z}/{x}/{y}.png';
}
}
@override
Widget build(BuildContext context) {
final galleryProvider = Provider.of(context);
}
}