-
-
Notifications
You must be signed in to change notification settings - Fork 508
Closed
Labels
await investigateThe issue is waiting for further investigation.The issue is waiting for further investigation.await triageThe issue is waiting for triage.The issue is waiting for triage.
Description
首先感谢作者为我们提供如此强大的文件选择库(Flutter上其他的库都太不好用了吧!)。
但是,在我尝试避免造轮子、在本插件的基础上写逻辑的时候遇到了困难:Delegate和Provider之间是耦合的(Delegate的构造函数接受且只接受一个Provider,而一个Provider只维护了一个_currentAssets,这限定死了一对一关系)。
这个根据Tab切换所选文件类型的功能,只是通过继承Delegate、Provider类是无法较好实现的:如果通过先全部加载,再在UI逻辑里条件筛选的方式,可能会有数据显示不全,而且影响加载更多的交互等逻辑。
一个可能的实现是,一个Tab对应一个Provider,而Provider在实例化的时候配置不同的类型。但是现有的Delegate模型不允许我这么做。
实际上,父级抽象类 AssetPickerBuilderDelegate 对provider的依赖是完全可以消除的,仅有的两个逻辑,要么可以从AssetPicker那几个静态方法从上层注入Provider,要么可以交给子类实现。

我们可以先讨论一下这个问题可能的解决,如果有时间我近期会提个PR!(尽量不产生Breaking changes)
Metadata
Metadata
Assignees
Labels
await investigateThe issue is waiting for further investigation.The issue is waiting for further investigation.await triageThe issue is waiting for triage.The issue is waiting for triage.
