onTap替换来自另一个文件波动的小部件

时间:2019-03-08 17:24:54

标签: flutter flutter-layout

说我的App()包含一些小部件,为了使代码看起来更漂亮,我为子小部件创建了类。现在这些子窗口小部件包含onTap函数,这些函数应该替换App()上的窗口小部件,那么我该如何解决此类问题?

1 个答案:

答案 0 :(得分:0)

您正在执行的操作的某些代码将很有用,或者在您尝试“替换小部件”的地方。

如果用替换表示在另一个位置显示一个不同的小部件,则只需使用布尔值来决定显示哪个。这些是我将要执行的步骤。

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

见下文

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

示例

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

应该可以解决问题。