onTap从另一个文件flutter替换widget

问题描述 投票:0回答:1

假设我的App()包含一些小部件并使代码看起来很漂亮,我已经为子小部件创建了类。现在这些子窗口小部件包含onTap函数,它们应该替换App()上的窗口小部件,那么我该如何处理这类问题呢?

flutter flutter-layout
1个回答
0
投票

您正在做的一些代码将很有用,或者您正在尝试“替换小部件”。

如果通过替换你的意思是在另一个小部件的位置显示另一个小部件,那么你只需使用布尔值来决定显示哪一个。这些是我实现这一步骤的步骤。

  1. 使App()中的窗口小部件有状态并创建一个名为showsOriginalWidget = true的成员变量boolean;
  2. 在子窗口小部件类中,在名为onSwapWidget的参数中引入一个Function。
  3. 在子窗口小部件的onTap函数中调用onSwapWidget()
  4. 在您的App()中提供正在执行此操作的小部件,并使用您的函数回调

见下文

childWidget(onSwapWidget: (){
  setState((){
     // toggle the original widget state
     showingOriginalWidget = !showOriginalWidget;
  });
});
  1. 在显示小部件的位置添加条件,以便根据值显示其中一个。

...
child: showingOriginalWidget ? originalWidget() : swappedOutWidget()
...

这应该够了吧。

© www.soinside.com 2019 - 2024. All rights reserved.