onTap 替换来自另一个文件的小部件
onTap replace widget from another file flutter
假设我的 App() 包含一些小部件,为了使代码看起来更漂亮,我为子小部件创建了 类。现在这些子小部件包含 onTap 函数,这些函数应该替换 App() 上的小部件,那么我该如何解决此类问题?
您正在做的事情的一些代码可能会有用,或者您正在尝试 "replace a widget"。
如果替换是指在另一个小部件的位置显示不同的小部件,那么您只需使用布尔值来决定显示哪个小部件。这些是我要执行的步骤。
- 使您的 App() 中的小部件有状态,并创建一个名为 showingOriginalWidget = true 的成员变量布尔值;
- 在您的子部件中 类 在名为 onSwapWidget 的参数中接收一个函数。
- 在子控件的 onTap 函数中调用 onSwapWidget()
- 在您的 App() 中,为执行此操作的小部件提供您的函数以回调
见下文
childWidget(onSwapWidget: (){
setState((){
// toggle the original widget state
showingOriginalWidget = !showOriginalWidget;
});
});
- 在显示小部件的位置添加一个条件,以便根据值显示其中一个。
例子
...
child: showingOriginalWidget ? originalWidget() : swappedOutWidget()
...
这应该可以解决问题。
假设我的 App() 包含一些小部件,为了使代码看起来更漂亮,我为子小部件创建了 类。现在这些子小部件包含 onTap 函数,这些函数应该替换 App() 上的小部件,那么我该如何解决此类问题?
您正在做的事情的一些代码可能会有用,或者您正在尝试 "replace a widget"。
如果替换是指在另一个小部件的位置显示不同的小部件,那么您只需使用布尔值来决定显示哪个小部件。这些是我要执行的步骤。
- 使您的 App() 中的小部件有状态,并创建一个名为 showingOriginalWidget = true 的成员变量布尔值;
- 在您的子部件中 类 在名为 onSwapWidget 的参数中接收一个函数。
- 在子控件的 onTap 函数中调用 onSwapWidget()
- 在您的 App() 中,为执行此操作的小部件提供您的函数以回调
见下文
childWidget(onSwapWidget: (){
setState((){
// toggle the original widget state
showingOriginalWidget = !showOriginalWidget;
});
});
- 在显示小部件的位置添加一个条件,以便根据值显示其中一个。
例子
...
child: showingOriginalWidget ? originalWidget() : swappedOutWidget()
...
这应该可以解决问题。