48 lines
1.7 KiB
Dart
48 lines
1.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:firebase_database/firebase_database.dart';
|
|
import 'menu_content.dart';
|
|
import 'recipedetailpage.dart';
|
|
|
|
class RecipesOverview implements MenuContent {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return StreamBuilder(
|
|
stream: FirebaseDatabase.instance.ref('rezepte').onValue,
|
|
builder: (context, AsyncSnapshot<DatabaseEvent> snapshot) {
|
|
if (snapshot.hasData && !snapshot.hasError && snapshot.data!.snapshot.value != null) {
|
|
Map<dynamic, dynamic> recipes = snapshot.data!.snapshot.value as Map<dynamic, dynamic>;
|
|
return ListView.builder(
|
|
scrollDirection: Axis.horizontal,
|
|
itemCount: recipes.length,
|
|
itemBuilder: (BuildContext context, int index) {
|
|
String key = recipes.keys.elementAt(index);
|
|
var value = recipes[key];
|
|
return GestureDetector(
|
|
onTap: () {
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(
|
|
builder: (context) => RecipeDetailPage(recipeId: key, recipe: const {},),
|
|
),
|
|
);
|
|
},
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: [
|
|
Image.network(value["bild1"], width: 100, height: 100),
|
|
Text(value["titel"]),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
},
|
|
);
|
|
} else {
|
|
return const Center(child: CircularProgressIndicator());
|
|
}
|
|
},
|
|
);
|
|
}
|
|
} |