我希望能够从树中删除小部件,或删除小部件的子部件。我尝试使用状态将小部件更改为 null,但它返回错误。有解决办法吗?这是错误 https://gist.github.com/litekangel/e2037cf5dc4dbd9c0c0a9860ad3b0270
我终于找到了一个隐藏/删除小部件的解决方案:我只是用一个空的小部件替换了它(可能我会添加一个小动画),但我仍在寻找一种更简洁的方法来做到这一点。
替换树中小部件的另一个好方法是为您的小部件提供一个key.
(如果 key 发生变化,Flutter 将重建子树。)
假设您有一个 StreamBuilder,并且无论出于何种原因,每次都需要从头开始构建子窗口小部件,您可以这样做:
StreamBuilder(
stream: bloc.myDependencyChanged, // A hypothetical bloc which notifies when a relevant dependency has changed.
builder: (_, snap) {
final dep = MyChangingDependency();
// MyWidget will NOT get reused by flutter if the key changes.
return MyWidget(dep, key: ValueKey(dep.getId()));
},
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9430 次 |
| 最近记录: |