Ajout des vaisseau clicables

This commit is contained in:
Gabriel
2023-05-31 12:40:17 +02:00
parent c344ae4051
commit 374e3c648b
2 changed files with 77 additions and 16 deletions

View File

@@ -3,6 +3,7 @@ import 'package:space_traders/models/agent_model.dart';
import 'package:space_traders/providers/agent_provider.dart';
import 'package:space_traders/models/ship_model.dart';
import 'package:space_traders/providers/ship_provider.dart';
import 'package:space_traders/pages/ship_page.dart';
class HomePage extends StatefulWidget {
@override
@@ -76,7 +77,7 @@ class _HomePageState extends State<HomePage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: MediaQuery.of(context).size.width, // Utiliser la largeur de l'écran
width: MediaQuery.of(context).size.width,
child: Card(
child: Padding(
padding: const EdgeInsets.all(8.0),
@@ -84,21 +85,61 @@ class _HomePageState extends State<HomePage> {
defaultColumnWidth: IntrinsicColumnWidth(),
children: ships.map((ship) {
return TableRow(
children: [
TableCell(
child: Text('${ship.symbol ?? 'N/A'}'),
),
TableCell(
child: Text('${ship.nav?.status ?? 'N/A'}'),
),
TableCell(
child: Text('Fuel: ${ship.fuel?.current ?? 'N/A'} / ${ship.fuel?.capacity ?? 'N/A'}'),
),
TableCell(
child: Text('Cargo: ${ship.cargo?.units ?? 'N/A'} / ${ship.cargo?.capacity ?? 'N/A'}'),
),
],
);
children: [
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ShipPage(ship: ship),
),
);
},
child: TableCell(
child: Text('${ship.symbol ?? 'N/A'}'),
),
),
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ShipPage(ship: ship),
),
);
},
child: TableCell(
child: Text('${ship.nav?.status ?? 'N/A'}'),
),
),
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ShipPage(ship: ship),
),
);
},
child: TableCell(
child: Text('Fuel: ${ship.fuel?.current ?? 'N/A'} / ${ship.fuel?.capacity ?? 'N/A'}'),
),
),
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ShipPage(ship: ship),
),
);
},
child: TableCell(
child: Text('Cargo: ${ship.cargo?.units ?? 'N/A'} / ${ship.cargo?.capacity ?? 'N/A'}'),
),
),
],
);
}).toList(),
),
),

20
lib/pages/ship_page.dart Normal file
View File

@@ -0,0 +1,20 @@
import 'package:flutter/material.dart';
import 'package:space_traders/models/ship_model.dart';
class ShipPage extends StatelessWidget {
final ShipModel ship;
ShipPage({required this.ship});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Ship Details'),
),
body: Center(
child: Text('Ship Symbol: ${ship.symbol}'),
),
);
}
}