is there any way I can use setState() in a function (line 26)? I am trying to call the function item (which includes the setState) from my main.dart file and Flutter doesn't like that. Also, the item function is in a different file than the main.dart. Can someone please help me?
item function:
item(itemName, color, itemVariable) {
return Container(
color: color ? Colors.grey[200] : Colors.white,
child: Row(
children: [
Flexible(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"${itemVariable}x",
style: const TextStyle(fontSize: 25),
),
),
),
Text(
itemName,
style: const TextStyle(fontSize: 25),
),
Flexible(
child: Padding(
padding: const EdgeInsets.fromLTRB(30, 5, 0, 10),
child: TextField(
onSubmitted: (value) {
itemVariable = int.parse(value);
print("Hodnota pro ${itemName} nastavena na: ${itemVariable}");
setState(() {});
},
keyboardType: TextInputType.number,
decoration: InputDecoration(
filled: true,
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(15),
borderSide: const BorderSide(color: Colors.blue),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(15),
borderSide: const BorderSide(color: Colors.blue, width: 2),
),
),
),
),
),
],
),
);
}
main.dart file:
import 'package:flutter/material.dart';
import 'package:intr_obleceni/items.dart';
import 'package:intr_obleceni/functions.dart';
void main() => runApp(
const MaterialApp(
home: Main(),
title: "Intr - seznam oblečení",
),
);
class Main extends StatefulWidget {
const Main({Key? key}) : super(key: key);
@override
_MainState createState() => _MainState();
}
class _MainState extends State<Main> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Internát - seznam oblečení"),
elevation: 2,
),
body: ListView(
children: [
category("Bundy", false),
item("Bunda", false, Bundy.bunda),
item("Softčílová bunda", false, Bundy.softcilovaBunda),
category("Ostatní", true),
item("Ručník", true, Ostatni.rucnik)
],
),
);
}
}