diff --git a/lib/pages/mood_page.dart b/lib/pages/mood_page.dart index 0e76795..bd1b36b 100644 --- a/lib/pages/mood_page.dart +++ b/lib/pages/mood_page.dart @@ -1,11 +1,13 @@ import 'package:flutter/material.dart'; -import 'package:smoke_cess_app/widgets/slider.dart'; +import 'package:smoke_cess_app/widgets/mood_form.dart'; class MoodPage extends StatelessWidget { const MoodPage({super.key}); @override Widget build(BuildContext context) { - return Column(children: const [MySlider(), Text('Freitext')]); + return const Center( + child: MoodForm(), + ); } } diff --git a/lib/widgets/mood_form.dart b/lib/widgets/mood_form.dart new file mode 100644 index 0000000..23264e9 --- /dev/null +++ b/lib/widgets/mood_form.dart @@ -0,0 +1,51 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:smoke_cess_app/widgets/slider.dart'; + +class MoodForm extends StatefulWidget { + const MoodForm({super.key}); + + @override + State createState() => _MoodFormState(); +} + +class _MoodFormState extends State { + final GlobalKey _moodFormKey = GlobalKey(); + MySlider slider = const MySlider(); + String _textInput = ""; + @override + Widget build(BuildContext context) { + return Form( + key: _moodFormKey, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + slider, + TextFormField( + onSaved: (newValue) => _textInput = newValue!, + decoration: + const InputDecoration(hintText: 'Beschreibe deine Stimmung?'), + validator: (String? value) => + value == null || value.isEmpty ? 'Text eingeben' : null, + keyboardType: TextInputType.multiline, + maxLines: null, + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 16.0), + child: ElevatedButton( + onPressed: () { + if (_moodFormKey.currentState!.validate()) { + _moodFormKey.currentState + ?.save(); //call every onSave Method + print(_textInput); + print(slider.getSliderValue()); + _moodFormKey.currentState?.reset(); + } + }, + child: const Text('Speichern'), + ), + ), + ], + )); + } +} diff --git a/lib/widgets/slider.dart b/lib/widgets/slider.dart index 2d800e2..fb8e063 100644 --- a/lib/widgets/slider.dart +++ b/lib/widgets/slider.dart @@ -1,26 +1,36 @@ import 'package:flutter/material.dart'; +double _currentSliderValue = 50; + class MySlider extends StatefulWidget { const MySlider({super.key}); @override State createState() => SliderState(); + + double getSliderValue() { + return _currentSliderValue; + } } class SliderState extends State { - double _currentSliderValue = 50; - @override Widget build(BuildContext context) { - return Row( + return Column( children: [ - Slider( - value: _currentSliderValue, - max: 100, - label: _currentSliderValue.round().toString(), - onChanged: (double value) => - {setState((() => _currentSliderValue = value))}), - Text(_currentSliderValue.round().toString()) + const Text('Bewerte deine Stimmung'), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Slider( + value: _currentSliderValue, + max: 100, + label: _currentSliderValue.round().toString(), + onChanged: (double value) => + {setState((() => _currentSliderValue = value))}), + Text(_currentSliderValue.round().toString()) + ], + ) ], ); }