Как я сказал в своем комментарии, у вас, похоже, есть некоторые грубые неправильные представления о том, как работают Classes
и импорт файлов. Я бы посоветовал вам посетить https://dart.dev и узнать немного больше о языке Dart.
Тем не менее, вот пример того, как вы можете создать class
с methods
в другом файле, импортируйте этот файл, создайте экземпляр класса и используйте его методы в своем основном class
. Помните, что вы не можете запустить setState
на обычном дротике class
, как вы пытались. Это можно сделать только на class
, который расширяет класс StatefulWidget
Flutter.
import 'package:flutter/material.dart';
import 'package:my_app/my_functions.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: MyWidget(),
),
),
);
}
}
class MyWidget extends StatelessWidget {
final MyMethods methods = MyMethods();
@override
Widget build(BuildContext context) {
return RaisedButton(
child: Text('Say hello'),
onPressed: () => methods.sayHello(),
);
}
}
my_functions.dart
class MyMethods {
void sayHello(){
print('Hello');
}
}
Вам действительно стоит попытаться лучше понять, как работают methods
, classes
, context
и StatefulWidgets
, прежде чем двигаться вперед с созданием приложений Flutter.