WIP slider + menu widgets

This commit is contained in:
Thomas Fransolet 2021-07-17 17:54:34 +02:00
parent e16a298cec
commit 880f717004
4 changed files with 159 additions and 25 deletions

View File

@ -8,6 +8,8 @@ import 'package:tablet_app/Screens/Map/map_context.dart';
import 'package:tablet_app/Screens/Map/map_view.dart'; import 'package:tablet_app/Screens/Map/map_view.dart';
import 'package:tablet_app/Models/map-marker.dart'; import 'package:tablet_app/Models/map-marker.dart';
import 'package:tablet_app/Models/tabletContext.dart'; import 'package:tablet_app/Models/tabletContext.dart';
import 'package:tablet_app/Screens/Menu/menu_view.dart';
import 'package:tablet_app/Screens/Slider/slider_view.dart';
import 'package:tablet_app/Screens/Video/video_view.dart'; import 'package:tablet_app/Screens/Video/video_view.dart';
import 'package:tablet_app/Screens/Web/web_view.dart'; import 'package:tablet_app/Screens/Web/web_view.dart';
import 'package:tablet_app/app_context.dart'; import 'package:tablet_app/app_context.dart';
@ -59,10 +61,10 @@ class _MainViewWidget extends State<MainViewWidget> {
elementToShow = VideoViewWidget(section: sectionSelected); elementToShow = VideoViewWidget(section: sectionSelected);
break; break;
case SectionType.slider : case SectionType.slider :
elementToShow = Padding( elementToShow = SliderViewWidget(section: sectionSelected);
padding: const EdgeInsets.all(15.0), break;
child: Text('Hellow in') case SectionType.menu :
); elementToShow = MenuViewWidget(section: sectionSelected);
break; break;
default: default:
elementToShow = Text('Hellow default'); elementToShow = Text('Hellow default');

View File

@ -0,0 +1,33 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:managerapi/api.dart';
class MenuViewWidget extends StatefulWidget {
final SectionDTO section;
MenuViewWidget({this.section});
@override
_MenuViewWidget createState() => _MenuViewWidget();
}
class _MenuViewWidget extends State<MenuViewWidget> {
MenuDTO menuDTO;
@override
void initState() {
print(widget.section.data);
menuDTO = MenuDTO.fromJson(jsonDecode(widget.section.data));
print(menuDTO);
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Center(child: new Text("TODO Menu"));
}
}

View File

@ -0,0 +1,99 @@
import 'dart:convert';
import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/material.dart';
import 'package:managerapi/api.dart';
import 'package:tablet_app/constants.dart';
class SliderViewWidget extends StatefulWidget {
final SectionDTO section;
SliderViewWidget({this.section});
@override
_SliderViewWidget createState() => _SliderViewWidget();
}
class _SliderViewWidget extends State<SliderViewWidget> {
SliderDTO sliderDTO;
@override
void initState() {
print(widget.section.data);
sliderDTO = SliderDTO.fromJson(jsonDecode(widget.section.data));
print(sliderDTO);
sliderDTO.images.sort((a, b) => a.order.compareTo(b.order));
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
return Padding(
padding: const EdgeInsets.only(top: 75),
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
if(sliderDTO.images != null && sliderDTO.images.length > 0)
CarouselSlider(
options: CarouselOptions(
height: size.height *0.3,
enlargeCenterPage: true,
reverse: false,
),
items: sliderDTO.images.map<Widget>((i) {
return Builder(
builder: (BuildContext context) {
return Container(
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.symmetric(horizontal: 5.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.0),
border: Border.all(width: 0.3, color: kSecondGrey),
),
child: Image.network(
i.source_,
fit: BoxFit.contain
)
);
},
);
}).toList(),
),
// Description
/*Container(
height: sliderDTO.images != null && sliderDTO.images.length > 0 ? size.height *0.3 : size.height *0.6,
width: MediaQuery.of(context).size.width *0.35,
decoration: BoxDecoration(
color: kBackgroundLight,
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(10.0),
boxShadow: [
BoxShadow(
color: kBackgroundSecondGrey,
spreadRadius: 0.5,
blurRadius: 1.1,
offset: Offset(0, 1.1), // changes position of shadow
),
],
),
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(15.0),
child: Text(sliderDTO., textAlign: TextAlign.center, style: TextStyle(fontSize: 15)),
),
),
),*/
]
),
),
);
}
}