61 lines
1.7 KiB
Dart
61 lines
1.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:hiddingsel_app/appflow/model/pois.dart';
|
|
import 'package:hiddingsel_app/appflow/view/widgets/gallery.dart';
|
|
import 'package:hiddingsel_app/appflow/view/widgets/string_list.dart';
|
|
import 'package:hiddingsel_app/appflow/view/navigation_drawer.dart';
|
|
|
|
import '../../../constants/constant.dart';
|
|
import '../widgets/card.dart';
|
|
|
|
final List<PointOfInterestModel> _pois = PointOfInterestModel.values;
|
|
|
|
class PoiView extends StatelessWidget {
|
|
final PointOfInterestModel _poi;
|
|
|
|
const PoiView(this._poi, {Key? key}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) => ListView(
|
|
children: [
|
|
ItemWithText.fromPoi(_poi),
|
|
SizedBox(
|
|
height: 200,
|
|
child: HiddingselGallery(
|
|
_poi.otherImages.map((e) => e.image).toList()),
|
|
),
|
|
],
|
|
);
|
|
}
|
|
|
|
class PoiPagesView extends StatelessWidget with NavigationDrawerItem {
|
|
final PointOfInterestModel _poi;
|
|
|
|
PoiPagesView(this._poi);
|
|
|
|
@override
|
|
String get title => 'Sehenswertes';
|
|
|
|
Widget build(BuildContext context) => PageView.builder(
|
|
controller: PageController(initialPage: _pois.indexOf(_poi)),
|
|
itemCount: _pois.length,
|
|
itemBuilder: (context, index) => PoiView(_pois[index]),
|
|
);
|
|
}
|
|
|
|
class PoiListView extends StatelessWidget with NavigationDrawerItem {
|
|
|
|
@override
|
|
String get title => 'Sehenswertes';
|
|
|
|
final Function(PreferredSizeWidget appBar, Widget body)? _onChange;
|
|
|
|
PoiListView(this._onChange);
|
|
|
|
@override
|
|
Widget build(BuildContext context) => HiddingselMenu(
|
|
_pois.map((e) => PoiPagesView(e)).toList(),
|
|
_onChange,
|
|
names: _pois.map((e) => e.name).toList(),
|
|
gradient: UIGradiants.blue);
|
|
}
|