added ingredients list and dropdown textfield

This commit is contained in:
SomnusVeritas
2023-10-03 02:53:43 +02:00
parent c06c98ff30
commit 2d77247f1f
3 changed files with 90 additions and 0 deletions

View File

@@ -1,4 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:rezepte/widgets/dropdown_textfield.dart';
import 'package:rezepte/widgets/ingredients_list.dart';
import '../models/difficulty.dart'; import '../models/difficulty.dart';
import '../widgets/difficulty_dropdown.dart'; import '../widgets/difficulty_dropdown.dart';
@@ -39,6 +41,8 @@ class _CreateRecipeState extends State<CreateRecipe> {
), ),
), ),
const DifficultyDropdown(), const DifficultyDropdown(),
const IngredientsList(),
const DropdownTextfield(),
], ],
), ),
), ),

View File

@@ -0,0 +1,41 @@
import 'package:flutter/material.dart';
class DropdownTextfield extends StatefulWidget {
const DropdownTextfield({super.key});
@override
State<DropdownTextfield> createState() => _DropdownTextfieldState();
}
class _DropdownTextfieldState extends State<DropdownTextfield> {
List<DropdownMenuItem> get _getDropdownItems {
return [
const DropdownMenuItem(
child: Text('rsitensroe'),
value: 1,
),
const DropdownMenuItem(
child: Text('rstiersnmti'),
value: 2,
)
];
}
@override
Widget build(BuildContext context) {
final dropdownValue = _getDropdownItems.first.value;
return SizedBox(
width: 500,
child: TextField(
decoration: InputDecoration(
suffix: DropdownButton(
items: _getDropdownItems,
onChanged: _onDropdownChanged,
value: dropdownValue,
)),
),
);
}
void _onDropdownChanged(value) {}
}

View File

@@ -0,0 +1,45 @@
import 'package:flutter/material.dart';
class IngredientsList extends StatefulWidget {
const IngredientsList({super.key});
@override
State<IngredientsList> createState() => _IngredientsListState();
}
class _IngredientsListState extends State<IngredientsList> {
@override
Widget build(BuildContext context) {
return Expanded(
child: ListView.builder(
itemCount: 2,
itemBuilder: _ingredientsBuilder,
),
);
}
Widget? _ingredientsBuilder(BuildContext context, int index) {
final screenWidth = MediaQuery.of(context).size.width;
return Row(
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(
width: screenWidth / 4,
child: const TextField(
decoration: InputDecoration(
label: Text('Ingredient'),
),
),
),
SizedBox(
width: screenWidth / 4,
child: const TextField(
decoration: InputDecoration(
label: Text('Count'),
),
),
),
],
);
}
}