Я вижу, что вы создали отдельный класс с определением функции внутри него, это правильный способ сделать это!
Вы должны пропустить что-то минимальное в своем коде, убедитесь, что вы определили класс и функция выглядит следующим образом:
Допустим, вы пишете класс с функцией в файле с именем data.dart.
data.dart должен выглядеть следующим образом:
Class DataSource {
Future oyuncuSec() async {
await showDialog(
context: context,
...
...
}
}
Теперь предположим, что вы хотите использовать эту функцию в файле с именем x.dart, это выглядит следующим образом:
в x.dart (с виджетом с отслеживанием состояния), вне функции сборки:
var dataSource = new Datasource();
//an example function:
getData() async {
await dataSource.oyuncuSec(); //use a .then() in the end if the function oyuncuSec returns something and you want to do something with the result...
}
Редактировать: Если вы не хотите, чтобы oyuncuSe c что-либо возвращал и просто делал всплывающее окно, нет необходимости устанавливать его тип возврата как Future. Просто определите это как void oyuncuSec() {//code for popup}