Skip to content

Commit

Permalink
Multiple changes:
Browse files Browse the repository at this point in the history
    - Create the widgets and ui directories
    - Move maps to widgets and create infoPoi
    - Move poi_view and poi_list_view to ui and create settings
    - Change list structure to show two columns in landscape
    - Change styles and gallery structure in poi_view
  • Loading branch information
Andy164 committed Oct 14, 2021
1 parent f563fc6 commit 6f24dd5
Show file tree
Hide file tree
Showing 7 changed files with 246 additions and 148 deletions.
4 changes: 2 additions & 2 deletions lib/main.dart
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';

import 'poi_view.dart';
import 'pois_list_view.dart';
import 'ui/poi_view.dart';
import 'ui/pois_list_view.dart';

void main() {
runApp(const MyApp());
Expand Down
108 changes: 0 additions & 108 deletions lib/poi_view.dart

This file was deleted.

119 changes: 119 additions & 0 deletions lib/ui/poi_view.dart
@@ -0,0 +1,119 @@
import 'package:flutter/material.dart';
import 'package:mobile_mission_tic_flutter/models/poi.dart';
import 'package:get/get.dart';
import 'package:mobile_mission_tic_flutter/widgets/info_poi.dart';

import '../widgets/maps.dart';

class POIView extends StatelessWidget {
POIView({Key? key}) : super(key: key);

final POI currentPOI = Get.arguments;

@override
Widget build(BuildContext context) {
Widget galleryPOIs = Container(
margin: const EdgeInsets.only(bottom: 16),
child: Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
_imageGallery('lib/assets/versailles_0.jpg', context),
_imageGallery('lib/assets/versailles_1.jpg', context),
_imageGallery('lib/assets/versailles_2.jpg', context),
_imageGallery('lib/assets/versailles_3.jpg', context),
]),
);

Widget descriptionPOI(POI currentPOI) {
return Container(
margin: const EdgeInsets.symmetric(vertical: 16),
child: Text(currentPOI.detail),
);
}

return Scaffold(
appBar: AppBar(title: Text(currentPOI.name)),
body: ListView(
children: [
Image.asset('lib/assets/test/' + currentPOI.img + ".jpg",
width: double.infinity, height: 200, fit: BoxFit.cover),
Container(
margin: const EdgeInsets.all(16),
child: Wrap(
runSpacing: 10,
children: [
galleryPOIs,
InfoPOI(
name: currentPOI.name,
location: currentPOI.location,
rating: currentPOI.rating),
descriptionPOI(currentPOI),
SizedBox(
height: MediaQuery.of(context).size.width / 2,
width: MediaQuery.of(context).size.width,
child: Maps(data: {
"lat": currentPOI.lat,
"lng": currentPOI.long,
"markerId": currentPOI.name
}),
)
],
),
),
],
));
}
}

Flexible _imageGallery(String urlImg, context) {
bool isLandscape =
MediaQuery.of(context).orientation == Orientation.landscape;

return Flexible(
flex: 1,
child: Container(
height: isLandscape ? 100 : 50,
margin: const EdgeInsets.only(right: 5.0),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(urlImg),
fit: BoxFit.fill,
),
borderRadius: const BorderRadius.all(Radius.circular(5))),
));
}

/*Widget galleryPOI(context){
bool isLandscape = MediaQuery.of(context).orientation == Orientation.landscape;
return Container(
height: isLandscape ? 100 : 60,
margin: const EdgeInsets.only(bottom: 16),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Flexible(
flex: 1,
child: Container(
height: 50,
margin: const EdgeInsets.only(right: 5.0),
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage('lib/assets/versailles_1.jpg'),
fit: BoxFit.fitHeight,
),
borderRadius: BorderRadius.all(Radius.circular(5))),
)
),
Expanded(
child: Image.asset('lib/assets/versailles_1.jpg', fit: BoxFit.fill),
),
Expanded(
child: Image.asset('lib/assets/versailles_2.jpg', fit: BoxFit.fill),
),
Expanded(
child: Image.asset('lib/assets/versailles_3.jpg', fit: BoxFit.fill),
),
]
),
);
}*/
73 changes: 36 additions & 37 deletions lib/pois_list_view.dart → lib/ui/pois_list_view.dart
@@ -1,11 +1,14 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:mobile_mission_tic_flutter/models/poi_list.dart';
import 'package:mobile_mission_tic_flutter/poi_view.dart';
import 'package:mobile_mission_tic_flutter/ui/poi_view.dart';
import 'package:mobile_mission_tic_flutter/remote/api.dart';

import 'package:get/get.dart';
import 'package:mobile_mission_tic_flutter/ui/settings.dart';
import 'package:mobile_mission_tic_flutter/widgets/info_poi.dart';

import 'models/poi.dart';
import '../models/poi.dart';

class POISListView extends StatefulWidget {
const POISListView({Key? key}) : super(key: key);
Expand All @@ -17,7 +20,6 @@ class POISListView extends StatefulWidget {
class _POISListViewState extends State<POISListView> {
late Future<POIList> futureList;


@override
void initState() {
super.initState();
Expand All @@ -29,33 +31,41 @@ class _POISListViewState extends State<POISListView> {
return Scaffold(
appBar: AppBar(
title: const Text("POIS List View"),
actions: [
IconButton(
onPressed: () {
Get.to(const Settings());
},
icon: const Icon(Icons.settings))
],
),
body: SingleChildScrollView(
padding: const EdgeInsets.symmetric(vertical: 10.0),
child: FutureBuilder(
future: futureList,
builder: (context, AsyncSnapshot<POIList> snapshot) {
if (snapshot.hasData) {
List<Widget> elements = <Widget>[];
snapshot.data!.pois.forEach((element) {
elements.add(itemCard(element, context));
});
return Wrap(
runSpacing: 10,
children: elements,
);
body: FutureBuilder(
future: futureList,
builder: (context, AsyncSnapshot<POIList> snapshot) {
if (snapshot.hasData) {
List<Widget> elements = <Widget>[];

for (var element in snapshot.data!.pois) {
elements.add(itemCard(element));
}

return const CircularProgressIndicator();
},
),
return OrientationBuilder(builder: (context, orientation) {
return GridView.count(
crossAxisCount: orientation == Orientation.portrait ? 1 : 2,
children: elements);
});
}

return const CircularProgressIndicator();
},
),
);
}
}

Widget itemCard(POI cardContent, BuildContext context) {
Widget itemCard(POI cardContent) {
return Card(
margin: const EdgeInsets.all(10),
elevation: 5.0,
clipBehavior: Clip.antiAlias,
shape: RoundedRectangleBorder(
Expand All @@ -79,26 +89,15 @@ Widget itemCard(POI cardContent, BuildContext context) {
child: Wrap(
runSpacing: 10,
children: [
Align(
alignment: Alignment.centerLeft,
child: Text(
cardContent.name,
style: const TextStyle(fontWeight: FontWeight.bold),
textScaleFactor: 1.5,
),
),
Align(
alignment: Alignment.centerLeft,
child: Text(
cardContent.detail,
textScaleFactor: 1.0,
),
),
InfoPOI(
name: cardContent.name,
location: cardContent.location,
rating: cardContent.rating),
],
),
),
],
),
),
);
}
}

0 comments on commit 6f24dd5

Please sign in to comment.