Function 颤振-使用动态功能控制用户界面

Function 颤振-使用动态功能控制用户界面,function,flutter,dart,dynamic,Function,Flutter,Dart,Dynamic,这一点在概念上看起来很简单,但在我正在阅读的任何初学者指南中都不存在。基本上,我希望根据用户输入动态更改我的UI,因为我在测试中设置了一个函数: testFunction(){ return Container( child: Text( "Hello World" ), ); } dynamic outputType1 = testFunction; …目的是让多个版本的产品可以进行不同的布局,然后稍后我只想称之为: Container(

这一点在概念上看起来很简单,但在我正在阅读的任何初学者指南中都不存在。基本上,我希望根据用户输入动态更改我的UI,因为我在测试中设置了一个函数:

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,
我得到一个关于类型设置的错误,但我无法确定我是否接近修复它,或者如果我发现上面的代码根本不起作用


先谢谢你

在构建函数中只能有类型小部件。将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(),

错误是什么?您应该将outputType1更改为Widget outputType1=testFunction;最后一行应该是
outputType1(),
Android Studio抛出了各种类型的不能是类型的错误,不确定是否是因为这些错误-我可以将不同的小部件埋在主小部件中,并从中控制变量,但在我的心目中没有那么优雅。很抱歉,回复太晚了,我刚刚有机会测试这个,声明抛出了一个错误“类型为dynamic function的值不能分配给widget类型的变量”。谢谢。@SimonKwong谢谢您的尝试。我刚刚编辑了我的答案,并在声明testFunction时添加了一些更改。您能再试一次吗?刚刚尝试过,但收到消息-动态无法分配给小部件功能,似乎无法这样做。@SimonKwong您是在列或行中调用outputType1吗?我自己也试过这个代码,它成功了。你确定你复制并粘贴了我的代码到你的项目中了吗?事实上,我已经把“Widget Function()outputType1=testFunction;”这一行移到了我的主Widget中。。。错误是我只能在它之外初始化静态函数,不知道这意味着什么,但现在可以工作了。顺便说一句!