Я разрабатываю приложение, в котором есть несколько кнопок для каждого действия, и чтобы код был более упорядоченным, я написал функцию с кнопкой:
Widget addButton(String msg,Function f){
return Padding(
padding: EdgeInsets.all(3),
child: MaterialButton(
minWidth: 40,
padding: EdgeInsets.all(10),
height: double.maxFinite,
color: Colors.blue,
//icon: Icons.add,
child: Text('${msg}',
style: TextStyle(fontSize: 16.0, color: Colors.white)),
onPressed: () {
f;
},
),
);
}
Эта функция получает строку, которая отображается на кнопке, и функцию, которая будет выполняться при нажатии кнопки.
Когда пользователь пишет в текстовом поле (tipoParc.text), он сохраняется на карте при нажатии кнопки и отображается в приложении. Функция, отвечающая за изменение состояния приложения:
addMedicion(){
setState(() {
print('cambiando ${tipoParc} con ${selOption} \n');
medicionTipe[tipoParc.text]=selOption;
});
}
Чтобы все работало в основном коде я вызываю функцию addButton так:
addButton('hello',addMedicion())
но это не работает при нажатии кнопки addButton, наоборот когда пользователь пишет в textField(typeParc.text) всегда выполняется функция addMedicion() показывая строку без нажатия кнопки