Flutter - использование динамических c функций для управления пользовательским интерфейсом - PullRequest
0 голосов
/ 09 февраля 2020

Это кажется действительно просто концептуально, но не существует ни в одном из руководств для начинающих, которые я читаю. По сути, я хочу динамически изменять свой пользовательский интерфейс на основе ввода пользователя, в качестве теста я настроил функцию вне этого:

testFunction(){
  return Container(
    child: Text(
        "Hello World"
    ),
  );
}

dynamic outputType1 = testFunction;

... с намерением иметь несколько версий этого, которые могли бы сделать другие макеты, а потом я просто хочу вызвать это:

  Container(
    color:Colors.grey[400],
    padding:EdgeInsets.all(40),
    child: Text("Please select cards",
      style:TextStyle(
          fontFamily:'Amatic',
          fontSize:30,
          fontWeight:FontWeight.bold
      ),
    ),
  ),
  outputType1,

Я получаю сообщение об ошибке при настройке типа, но не могу понять, близок ли я к его исправлению или если я выше код принципиально не работает.

Заранее спасибо ...

1 Ответ

0 голосов
/ 09 февраля 2020

Вы можете иметь только виджет типа в вашей функции сборки. Измените тип outputType1 на Widget, и все будет в порядке.

Widget testFunction(){
  return Container(
    child: Text(
        "Hello World"
    ),
  );
}

Widget Function() outputType1 = testFunction;

и вызовите функцию в функции построения

    Container(
      color:Colors.grey[400],
      padding:EdgeInsets.all(40),
      child: Text("Please select cards",
      style:TextStyle(
          fontFamily:'Amatic',
          fontSize:30,
          fontWeight:FontWeight.bold
      ),
    ),
  ),
  outputType1(),
...