保持颤振中抽屉的状态

时间:2020-08-26 20:24:22

标签: flutter dart state

我有一个有状态的Scaffold小部件,其中body包含具有各种属性(例如鞋子或汽车)的实体的列表,以及Drawer小部件,除了它最初是空的底部的两个按钮(“取消”和“过滤器”)和一个FAB。用户可以使用FAB添加各种过滤器(例如,用户可以添加鞋号过滤器或颜色过滤器)。

我遇到的问题如下:假设用户选择了各种过滤器并使用它们(例如,勾选复选框,输入鞋号,更改滑块等)。当用户准备好应用过滤器时,他可以单击“过滤器”按钮,该按钮将关闭DraweronTap -> callback -> Navigator.of(context).pop())。但是,当用户想要返回时,重新打开Drawer并调整其中一个过滤器,则显然是不起作用的,因为该窗口小部件是从头开始重建的。

当前,过滤的工作方式是,一旦按下“过滤器”按钮,来自添加过滤器的所有各种值都将收集到对象FilterPackage中,然后通过callback进行传递到Scaffold小部件,然后将FilterPackage中的值应用于实体列表。 我想到的一种解决方案是,将此FilterPackage对象提供给其构造函数中的Drawer小部件,该控件将提供重建小部件所必需的所有信息。

这是一个合理的解决方案吗?我已经进行了一些研究,但是一直在努力寻找解决方案,以明确保留抽屉状态的最佳和推荐方法。在这种情况下,使用PageStorage / PageStorageBucket似乎过于复杂。还是我错了?

谢谢您的指导。

0 个答案:

没有答案