flutter 函数或其他用于标识小部件(为小部件设置soem ID)并更改小部件子项的东西

nuypyhwy  于 2023-05-08  发布在  Flutter
关注(0)|答案(1)|浏览(161)

我不知道这是怎么做到的。我希望能够从任何地方(任何类和部件在任何 dart 文件)与OnTap选项(或其他)找到任何特定的部件,我需要的ID或东西,并改变它的孩子。例如,我可能有一个按钮在AppBar,InkWell在底部NavigationBar,InkWell或列表在许多其他小部件,但无论我点击我需要能够jsut定位一个特定的wifget(通过ID将eb最好),并告诉小部件更改它的孩子到新的东西。
就像你在Javascript/Jquery中所做的那样--加载一些 AJAX 内容或任何东西,然后通过它的ID和$('#divid).html(something)找到DIV。类似的方式来创建小部件。
就像这样:

Widget(
  widgetID: 5,
  child: Text('Hello'),
)

InkWell(
  onTap: () {
    FunctionToChangeWidgetChild(
       widgetID: 5, 
       child: SizedBox(width: 100, height: 100),
    );
  }
)

我不需要改变只是文本从一个文本到其他,但改变儿童完全。从一个小部件到另一个小部件(可能有更多嵌套的小部件,当然,在SizedBox中,我们可能有Row和文本等)。

but5z9lq

but5z9lq1#

您可以使用GlobalKey,这将定位来自小部件的哪个状态是相关的。
示例:

final _formKey = GlobalKey<FormState>();

Form(
  key: _formKey,
  child: Column(
    children: <Widget>[
      // Add TextFormFields and ElevatedButton here.
    ],
  ),
);

相关问题