如何在Flutter中扩展两个类?

24

我正在尝试在Flutter中扩展两个具有“with”关键字的类,以获取SearchDelegate重写方法,但无法实现。请建议任何解决方案。

class A extends StatefulWidget with SearchDelegate{}
1个回答

37

通常情况下,您可以使用“with”关键字轻松调用Dart中的多个类(继承),例如:

Class A extends B with C, D {
    //your code
}

但是当您调用SearchDelegate时,您可能会看到

类'SearchDelegate'无法用作mixin,因为它声明了一个构造函数。

类'SearchDelegate'无法用作mixin,因为它扩展了一个除Object之外的类。

简要说明:在这里,您必须覆盖所有抽象方法,并在您声明的类中传递一个String/int变量。也就是说,您可能需要使用所需的变量调用DataSearch类构造函数。

由于调用带参数的构造函数,最好调用一个新类,在该类中可以轻松实现SearchDelegate。

就像对于任何按钮动作一样

onPressed: () {
        showSearch(
          context: context,
          delegate: CustomSearchDelegate(),
        );
      },

我希望我的答案对你有意义。 谢谢


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接