如何在小部件扩展中添加超过 5 个小部件? WidgetBundle 的小部件的最大数量不能超过 5

Posted

技术标签:

【中文标题】如何在小部件扩展中添加超过 5 个小部件? WidgetBundle 的小部件的最大数量不能超过 5【英文标题】:How can I add more than 5 widgets in a widget extension? the maximum number of WidgetBundle's widget cannot exceed 5 【发布时间】:2020-10-08 01:51:10 【问题描述】:

好像WidgetBundle有最大数量限制,超过5个会报编译错误:Extra argument in call

但是我在任何文档中都没有看到这样的描述,也没有其他开发者提到这个问题。

有人有想法吗?

@main
struct WidgetsBundle: WidgetBundle 
    @WidgetBundleBuilder
    var body: some Widget 
        Widget1()
        Widget2()
        Widget3()
        Widget4()
        Widget5()
        Widget6() // Extra argument in call
    

【问题讨论】:

【参考方案1】:

我在WidgetBundle 中遇到了同样的错误。如果您有兴趣为应用程序拥有超过 5 个小部件,则有一种解决方法:

@main
struct WidgetKitExtension: WidgetBundle 
    @WidgetBundleBuilder
    var body: some Widget 
        Widget1()
        Widget2()
        Widget3()
        Widget4()
        Bundle2().body
    


struct Bundle2: WidgetBundle 
    @WidgetBundleBuilder
    var body: some Widget 
        Widget5()
        Widget6()
        Widget7()
    

基本上,您创建第二个WidgetBundle 并在您的第一个中使用它。我已经验证这从Xcode 12.0.1开始有效

尚未测试提交包含超过 5 个小部件的应用程序。

【讨论】:

成功了!谢谢您的回答。我试过甚至可以在Bundle2 中使用Bundle3 来制作超过25 个小部件。如果提交通过,我会在这里回复。 该提交已获得 Apple 批准。 ?

以上是关于如何在小部件扩展中添加超过 5 个小部件? WidgetBundle 的小部件的最大数量不能超过 5的主要内容,如果未能解决你的问题,请参考以下文章

Hive 在小部件上拆分 ORC 文件

如何在android中正确设置一个大的小部件图标

小部件未出现在小部件列表中

在小部件树中检测到 Flutter Duplicate GlobalKey

在小部件中打开一个活动

如何在小部件测试中测试特定的 ProviderNotFoundException