38 lines
1.1 KiB
Dart
38 lines
1.1 KiB
Dart
|
|
import 'package:flutter/material.dart';
|
||
|
|
import '../../data/data.dart' as data;
|
||
|
|
import '../../models/activity.model.dart';
|
||
|
|
import '../widgets/activity_card.dart';
|
||
|
|
|
||
|
|
class City extends StatefulWidget {
|
||
|
|
final List<Activity> activities = data.activities;
|
||
|
|
City({super.key});
|
||
|
|
@override
|
||
|
|
State<City> createState() => _CityState();
|
||
|
|
}
|
||
|
|
|
||
|
|
class _CityState extends State<City> {
|
||
|
|
@override
|
||
|
|
Widget build(BuildContext context) {
|
||
|
|
return Scaffold(
|
||
|
|
appBar: AppBar(
|
||
|
|
leading: const Icon(Icons.chevron_left),
|
||
|
|
title: const Text('Paris'),
|
||
|
|
actions: const [Icon(Icons.more_vert)],
|
||
|
|
),
|
||
|
|
|
||
|
|
// ==================== GridView.extent (taille max par item) - VERSION ACTIVE ✅ ====================
|
||
|
|
body: Container(
|
||
|
|
padding: const EdgeInsets.all(10),
|
||
|
|
child: GridView.extent(
|
||
|
|
maxCrossAxisExtent: 150, // largeur max d'un item
|
||
|
|
mainAxisSpacing: 2,
|
||
|
|
crossAxisSpacing: 5,
|
||
|
|
children: widget.activities
|
||
|
|
.map((a) => ActivityCard(activity: a))
|
||
|
|
.toList(),
|
||
|
|
),
|
||
|
|
),
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|