implemented form for mood

main
Julian Gegner 2023-02-15 23:02:29 +01:00
parent 92333d7b2d
commit 465b4504a9
3 changed files with 75 additions and 12 deletions

View File

@ -1,11 +1,13 @@
import 'package:flutter/material.dart'; 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 { class MoodPage extends StatelessWidget {
const MoodPage({super.key}); const MoodPage({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Column(children: const [MySlider(), Text('Freitext')]); return const Center(
child: MoodForm(),
);
} }
} }

View File

@ -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<MoodForm> createState() => _MoodFormState();
}
class _MoodFormState extends State<MoodForm> {
final GlobalKey<FormState> _moodFormKey = GlobalKey<FormState>();
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'),
),
),
],
));
}
}

View File

@ -1,26 +1,36 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
double _currentSliderValue = 50;
class MySlider extends StatefulWidget { class MySlider extends StatefulWidget {
const MySlider({super.key}); const MySlider({super.key});
@override @override
State<StatefulWidget> createState() => SliderState(); State<StatefulWidget> createState() => SliderState();
double getSliderValue() {
return _currentSliderValue;
}
} }
class SliderState extends State<MySlider> { class SliderState extends State<MySlider> {
double _currentSliderValue = 50;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Row( return Column(
children: [ children: [
Slider( const Text('Bewerte deine Stimmung'),
value: _currentSliderValue, Row(
max: 100, mainAxisAlignment: MainAxisAlignment.center,
label: _currentSliderValue.round().toString(), children: [
onChanged: (double value) => Slider(
{setState((() => _currentSliderValue = value))}), value: _currentSliderValue,
Text(_currentSliderValue.round().toString()) max: 100,
label: _currentSliderValue.round().toString(),
onChanged: (double value) =>
{setState((() => _currentSliderValue = value))}),
Text(_currentSliderValue.round().toString())
],
)
], ],
); );
} }