Commit 552a7127 authored by Lila NICKLER's avatar Lila NICKLER

Restructuration du widget et des listes de BDD + Ajout du visuel Etoile pour mettre en favori

parent a8c2a6c2
......@@ -2,16 +2,15 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'Widget3000.dart';
class MediaItem {
String name;
String description;
String image;
final _saved = Set<MediaItem>();
......@@ -28,10 +27,9 @@ class MediaItem {
}
ListView mediaDisplay (MediaItem item)
{
const TextStyle titleStyle = TextStyle(fontSize: 30,fontWeight: FontWeight.bold, color: Colors.blue);
/* ListView mediaDisplay(MediaItem item) {
const TextStyle titleStyle = TextStyle(
fontSize: 30, fontWeight: FontWeight.bold, color: Colors.blue);
const TextStyle bodyStyle = TextStyle(fontSize: 11);
final alreadySaved = _saved.contains(MediaItem);
......@@ -40,77 +38,88 @@ class MediaItem {
physics: new NeverScrollableScrollPhysics(),
children: [
ListTile(
title: Text(item.name, style: GoogleFonts.montserrat(textStyle: titleStyle),textAlign: TextAlign.center,),
title: Text(
item.name, style: GoogleFonts.montserrat(textStyle: titleStyle),
textAlign: TextAlign.center,),
trailing: Icon(
alreadySaved ? Icons.favorite : Icons.favorite_border,
color: alreadySaved ? Colors.red : null,
),),
alreadySaved ? Icons.favorite : Icons.favorite_border,
color: alreadySaved ? Colors.red : null),
onTap: () {
setState(() {
if (alreadySaved) {
_saved.remove(item);
} else {
_saved.add(item);
}
});
},
),
GridView.count(
crossAxisCount: 2,
physics: new NeverScrollableScrollPhysics(),
shrinkWrap: true,
children: [
Image.asset(item.image),
Align( alignment: Alignment.center,
child:Text(item.description, style:GoogleFonts.montserrat(textStyle: bodyStyle), textAlign: TextAlign.justify, )),
Align(alignment: Alignment.center,
child: Text(item.description,
style: GoogleFonts.montserrat(textStyle: bodyStyle),
textAlign: TextAlign.justify,)),
]),
],
);
}*/
MediaItem(String name, String desc, String image) {
this.name = name;
this.description = desc;
this.image = image;
}
MediaItem(String name, String desc, String image)
{
this.name = name;
this.description = desc;
this.image = image;
}
}
class DataBase
{
static List <ListView> _listSeries= <ListView>[];
static List <ListView> _listGames = <ListView>[];
MediaItem item;
static List <MediaItem> _listSeries= <MediaItem>[];
static List <MediaItem> _listGames = <MediaItem>[];
DataBase()
{
item = new MediaItem("name","desc","image");
_listSeries.add(item.mediaDisplay(MediaItem(
_listSeries.add(MediaItem(
"LES SIMPSON",
"Les Simpson, famille américaine moyenne, vivent à Springfield. Homer, le père, a deux passions : regarder la télé et boire des bières. Mais son quotidien est rarement reposant, entre son fils Bart qui fait toutes les bêtises possibles, sa fille Lisa qui est une surdouée, ou encore sa femme Marge qui ne supporte pas de le voir se soûler à longueur de journée.",
"assets/images/lesSimpson.jpg")));
_listSeries.add(item.mediaDisplay(MediaItem(
"assets/images/lesSimpson.jpg"));
_listSeries.add((MediaItem(
"DARK",
"Un enfant disparu lance quatre familles dans une quête éperdue pour trouver des réponses. La chasse au coupable fait émerger les péchés et les secrets d'une petite ville.",
"assets/images/dark.jpg")));
_listSeries.add(item.mediaDisplay(MediaItem(
_listSeries.add((MediaItem(
"PEAKY BLINDERS",
"Birmingham, en 1919. Un gang familial règne sur un quartier de la ville : les Peaky Blinders, ainsi nommés pour les lames de rasoir qu'ils cachent dans la visière de leur casquette.",
"assets/images/peakyBlinders.jpg")));
_listSeries.add(item.mediaDisplay(MediaItem(
_listSeries.add((MediaItem(
"BLACK MIRROR",
"Chaque épisode de cette anthologie montre la dépendance des hommes vis-à-vis de tout ce qui a un écran...",
'assets/images/blackmirror.jpg')));
_listGames.add(item.mediaDisplay(MediaItem(
_listGames.add((MediaItem(
"Assassin's Creed: Odyssey",
"Écrivez votre propre odyssée et devenez un héros spartiate de légende dans Assassin's Creed® Odyssey, une aventure où vous forgerez votre destin et tracerez votre chemin dans un univers sur le point de s'effondrer. Influez sur l'histoire et découvrez un univers riche et évoluant en permanence en fonction de vos choix.",
"assets/images/acOdyssey.jpg")));
_listGames.add(item.mediaDisplay(MediaItem(
_listGames.add((MediaItem(
"Mario Kart 8 Deluxe",
"Appuyez sur le champignon et affûtez vos carapaces, Mario Kart 8 Deluxe va tout retourner sur Nintendo Switch ! Foncez à fond les ballons la tête à l'envers avec les pneus anti-gravité ! Irez-vous plus vite en passant par le plafond ? Ou allez-vous tracer au sol entre les bananes et les batailles de carapace ? Tous les coups les plus fourbes sont permis pour se hisser à la première place !",
"assets/images/mk8.jpg")));
_listGames.add(item.mediaDisplay(MediaItem(
_listGames.add((MediaItem(
"The Legend of Zelda: Breath of the wild",
"Oubliez tout ce que vous savez sur les jeux The Legend of Zelda. Plongez dans un monde de découverte, d'exploration et d'aventure dans The Legend of Zelda: Breath of the Wild, un nouveau jeu qui vient bouleverser la série à succès. Voyagez à travers champs, traversez des forêts et grimpez sur des sommets dans votre périple où vous explorez le royaume d'Hyrule en ruines à travers cette aventure à ciel ouvert.",
"assets/images/zeldaBOTW.jpg")));
}
List <ListView> getlistSeries()
List <MediaItem> getlistSeries()
{
return _listSeries;
}
List <ListView> getlistGames()
List <MediaItem> getlistGames()
{
return _listGames;
}
......
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:mediateque_tp1/Media.dart';
class Widget3000{
Widget view;
MediaItem mediaItem ;
class Widget3000 extends StatefulWidget{
final List <MediaItem> list ;
Widget3000({Key key, @required this.list}):super (key:key);
@override
_Widget3000State createState() => _Widget3000State();
Widget3000(List <ListView> list){
view= Column(
children: [Expanded(
child:ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
padding: const EdgeInsets.all(8),
itemCount: list.length,
itemBuilder: (BuildContext context, int index)
{
return Container(
height: 300,
child: Center(child: list[index]));
})
)
]
}
class _Widget3000State extends State<Widget3000> {
_Widget3000State(): super();
final _saved = List <MediaItem>();
DataBase dataB = new DataBase();
ListView mediaDisplay(MediaItem item) {
const TextStyle titleStyle = TextStyle(fontSize: 30, fontWeight: FontWeight.bold, color: Colors.blue);
const TextStyle bodyStyle = TextStyle(fontSize: 11);
final alreadySaved = _saved.contains(MediaItem);
return ListView(
shrinkWrap: true,
physics: new NeverScrollableScrollPhysics(),
children: [
ListTile(
title: Text(
item.name, style: GoogleFonts.montserrat(textStyle: titleStyle),
textAlign: TextAlign.center,),
trailing: Icon(
alreadySaved ? Icons.star_outline_outlined : Icons.star_border_outlined,
color: alreadySaved ? Colors.red : null),
onTap: () {
setState(() {
if (alreadySaved) {
_saved.remove(item);
} else {
_saved.add(item);
}
});
},
),
GridView.count(
crossAxisCount: 2,
physics: new NeverScrollableScrollPhysics(),
shrinkWrap: true,
children: [
Image.asset(item.image),
Align(alignment: Alignment.center,
child: Text(item.description,
style: GoogleFonts.montserrat(textStyle: bodyStyle),
textAlign: TextAlign.justify,)),
]),
],
);
}
Widget getThisFuckingWidget(){return view;}
List <ListView> buildList (List <MediaItem> listItem)
{
List <ListView> listDisplay= <ListView>[];
for (int i =0; i< listItem.length; i++)
{
listDisplay.add(mediaDisplay(listItem[i]));
}
return listDisplay;
}
Widget build(BuildContext context) {
List <ListView> _list= buildList(widget.list);
return Column(
children: [Expanded(
child:ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
padding: const EdgeInsets.all(8),
itemCount: _list.length,
itemBuilder: (BuildContext context, int index)
{
return Container(
height: 300,
child: Center(child: _list[index]));
})
),
]
);
}
}
......@@ -50,4 +112,5 @@ class Description extends StatelessWidget {
),
);
}
}
\ No newline at end of file
}
......@@ -43,14 +43,14 @@ class _MyHomePageState extends State<MyHomePage> {
final List<int> colorCodes = <int>[600, 500, 100];
static DataBase db = new DataBase();
static Widget3000 affichageSeries =new Widget3000(db.getlistSeries());
static Widget3000 affichageGames =new Widget3000(db.getlistGames());
static Widget3000 affichageSeries =new Widget3000(list: db.getlistSeries());
static Widget3000 affichageGames ;//=new Widget3000(list: db.getlistGames());
static List<Widget> _widgetOptions = <Widget>[
Text("Bienvenue dans votre Médiathèque",textAlign: TextAlign.center, style: GoogleFonts.montserrat(textStyle: TextStyle(fontSize: 40,color: Colors.blue))),
affichageSeries.getThisFuckingWidget(),
affichageGames.getThisFuckingWidget(),
affichageSeries,
affichageGames,
Text (
'Mes favoris',
style: optionStyle,
......@@ -94,7 +94,7 @@ class _MyHomePageState extends State<MyHomePage> {
),
BottomNavigationBarItem(
icon: Icon(Icons.favorite_border_rounded),
icon: Icon(Icons.star_outline_outlined),
label: 'Mes favoris',
backgroundColor: Colors.blue
),
......@@ -103,9 +103,7 @@ class _MyHomePageState extends State<MyHomePage> {
currentIndex: _selectedIndex,
selectedItemColor: Colors.white,
onTap: _onItemTapped,),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
// This trailing comma makes auto-formatting nicer for build methods.
);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment