diff --git a/lib/AddPage.dart b/lib/AddPage.dart index 671609f..bd72fea 100644 --- a/lib/AddPage.dart +++ b/lib/AddPage.dart @@ -1,4 +1,7 @@ -/*import 'package:flutter/material.dart'; +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:image_picker/image_picker.dart'; class AddScreen extends StatefulWidget { @override @@ -9,7 +12,17 @@ class _AddScreenState extends State { final _formKey = GlobalKey(); final _titleController = TextEditingController(); final _descriptionController = TextEditingController(); - final _imageController = TextEditingController(); + File? _imageFile; + + Future _getImage(ImageSource source) async { + final pickedFile = await ImagePicker().getImage(source: source); + + if (pickedFile != null) { + setState(() { + _imageFile = File(pickedFile.path); + }); + } + } @override Widget build(BuildContext context) { @@ -24,7 +37,9 @@ class _AddScreenState extends State { onPressed: () { _titleController.clear(); _descriptionController.clear(); - _imageController.clear(); + setState(() { + _imageFile = null; + }); }, ), ), @@ -84,218 +99,56 @@ class _AddScreenState extends State { }, ), SizedBox(height: 16.0), - TextFormField( - decoration: InputDecoration( - labelText: 'Bild', - filled: true, - fillColor: Colors.grey[200], - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(16.0), - ), - ), - controller: _imageController, - validator: (value) { - if (value!.isEmpty) { - return 'Bitte geben Sie ein Bild ein.'; - } - return null; - }, - ), + _imageFile != null + ? Image.file(_imageFile!) + : Container( + height: 150.0, + decoration: BoxDecoration( + color: Colors.grey[200], + borderRadius: BorderRadius.circular(16.0), + ), + child: Center( + child: TextButton( + onPressed: () { + showModalBottomSheet( + context: context, + builder: (context) => Column( + mainAxisSize: MainAxisSize.min, + children: [ + ListTile( + leading: Icon(Icons.photo_library), + title: Text('Galerie auswählen'), + onTap: () { + Navigator.pop(context); + _getImage(ImageSource.gallery); + }, // + ), + ListTile( + leading: Icon(Icons.camera_alt), + title: Text('Kamera verwenden'), + onTap: () { + Navigator.pop(context); + _getImage(ImageSource.camera); + }, + ), + ], + ), + ); + }, + child: Text( + 'Bild hinzufügen', + style: TextStyle( + color: Theme.of(context).primaryColor, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ), ], ), ), ), ); } -}*/ - -import 'dart:io'; - -import 'package:flutter/material.dart'; -import 'package:image_picker/image_picker.dart'; - -class AddScreen extends StatefulWidget { - @override - _AddScreenState createState() => _AddScreenState(); -} - -class _AddScreenState extends State { - final _formKey = GlobalKey(); - final _titleController = TextEditingController(); - final _descriptionController = TextEditingController(); - File? _imageFile; - - Future _getImage(ImageSource source) async { - final pickedFile = await ImagePicker().getImage(source: source); - - if (pickedFile != null) { - setState(() { - _imageFile = File(pickedFile.path); - }); - } - } - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: Text('Neues Element hinzufügen'), - actions: [ - Padding( - padding: const EdgeInsets.only(right: 8.0), - child: IconButton( - icon: Icon(Icons.refresh), - onPressed: () { - _titleController.clear(); - _descriptionController.clear(); - setState(() { - _imageFile = null; - }); - }, - ), - ), - Padding( - padding: const EdgeInsets.only(right: 8.0), - child: IconButton( - icon: Icon(Icons.check), - onPressed: () { - if (_formKey.currentState!.validate()) { - // Hier wird die Logik zum Hinzufügen des neuen Elements ausgeführt - Navigator.pop(context); - } - }, - ), - ), - ], - ), - body: Padding( - padding: const EdgeInsets.all(16.0), - child: Form( - key: _formKey, - child: Column( - children: [ - TextFormField( - decoration: InputDecoration( - labelText: 'Titel', - filled: true, - fillColor: Colors.grey[200], - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(16.0), - ), - ), - controller: _titleController, - validator: (value) { - if (value!.isEmpty) { - return 'Bitte geben Sie einen Titel ein.'; - } - return null; - }, - ), - SizedBox(height: 16.0), - TextFormField( - decoration: InputDecoration( - labelText: 'Beschreibung', - filled: true, - fillColor: Colors.grey[200], - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(16.0), - ), - ), - controller: _descriptionController, - validator: (value) { - if (value!.isEmpty) { - return 'Bitte geben Sie eine Beschreibung ein.'; - } - return null; - }, - ), - SizedBox(height: 16.0), - _imageFile != null - ? Image.file(_imageFile!) - : Container( - height: 150.0, - decoration: BoxDecoration( - color: Colors.grey[200], - borderRadius: BorderRadius.circular(16.0), - ), - child: Center( - child: TextButton( - onPressed: () { - showModalBottomSheet( - context: context, - builder: (context) => Column( - mainAxisSize: MainAxisSize.min, - children: [ - ListTile( - leading: Icon(Icons.photo_library), - title: Text ('Galerie auswählen'), - onTap: () { - Navigator.pop(context); - _getImage(ImageSource.gallery); - }, // - ), - ListTile( - leading: Icon(Icons.camera_alt), - title: Text('Kamera verwenden'), - onTap: () { - Navigator.pop(context); - _getImage(ImageSource.camera); - }, - ), - ], - ), - ); - }, - child: Text( - 'Bild hinzufügen', - style: TextStyle( - color: Theme.of(context).primaryColor, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ), - ], - ), - ), - ), - ); - } -} - - -/*import 'package:flutter/material.dart'; - -class AddScreen extends StatelessWidget { - const AddScreen({super.key}); - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: Text('Neues Element hinzufügen'), - ), - body: Column( - children: [ - TextFormField( - decoration: InputDecoration(labelText: 'Titel'), - ), - TextFormField( - decoration: InputDecoration(labelText: 'Beschreibung'), - ), - TextFormField( - decoration: InputDecoration(labelText: 'Bild'), - ), - ElevatedButton( - onPressed: () { - // Fügen Sie hier die Logik zum Hinzufügen eines neuen Elements hinzu - Navigator.pop(context); - }, - child: Text('Hinzufügen'), - ), - ], - ), - ); - } -}*/ +} \ No newline at end of file diff --git a/lib/DetailPage.dart b/lib/DetailPage.dart index 11b775d..b9c008f 100644 --- a/lib/DetailPage.dart +++ b/lib/DetailPage.dart @@ -46,33 +46,6 @@ class DetailPage extends StatelessWidget { ], ), ), - /* - body: Column( - children: [ - Container( - padding: const EdgeInsets.all(8.0), - child: image, - ), - Container( - padding: const EdgeInsets.all(8.0), - child: Text( - title, - style: const TextStyle( - fontSize: 24, - ), - ), - ), - Container( - padding: const EdgeInsets.all(8.0), - child: Text( - description, - style: const TextStyle( - fontSize: 18, - ), - ), - ), - ], - ),*/ ); } }