Как получить доступ к функции из другого класса — Flutter

#android #flutter #dart #mobile

Вопрос:

У меня есть эта функция, getTextColor но мне пришлось объявить ее в другом классе. Как мне получить доступ к этой функции из другого класса?

Вот как я пытаюсь получить к нему доступ:

 class _NextPageState extends State<NextPage> with SingleTickerProviderStateMixin {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          backgroundColor: Colors.transparent,
          elevation: 0,
        ),
        body: Center(
          child: Container(
            child: RichText(
                text: TextSpan(children: [
              TextSpan(
                  text: widget.result   '  ',
                  style: TextStyle(
                    fontSize: 20.0,
                    fontWeight: FontWeight.bold,
                    color: getTextColor(widget.result), // Here is the problem.
                    height: 2.5,
                    letterSpacing: 0.7,
                  )),
 

Логика функции находится внутри класса, называемого class _MainScreenState extends State<MainScreen>

Подводя итог, как мне определить код, который getTextColor принадлежит другому классу?

Ответ №1:

Вам нужно создать объект другого класса или сделать функцию статичной, чтобы получить к ней доступ. Если функция статична, то вы можете вызвать ее следующим образом:

 ClassName.getTextColor();
 

Если функция не статична, то вам нужно создать объект, чтобы вызвать ее следующим образом:

 var object = ClassName();
object.getTextColor();
 

Комментарии:

1. Просто чтобы убедиться, объект должен быть объявлен внутри класса из приведенного выше кода, верно?

2. Привет, бильбо_бо, объект может быть объявлен до сборки виджета @override.