【问题标题】:How to add add implements PreferredSizeWidget in stateful widget如何在有状态小部件中添加添加实现 PreferredSizeWidget
【发布时间】:2020-06-29 19:03:05
【问题描述】:

对于单独的 appbar 小部件,它必须在类中添加实现 PreferredSizeWidget。问题是我看到每个人都会使用 StateLess Widget。

但我有一个有状态的小部件,并希望将其与它一起使用。 如何在有状态的小部件上添加实现方法

当我添加实现 PreferredSizeWidget 时会报错

class MyAppBar extends StatefulWidget implements PreferredSizeWidget  {
  @override
  _MyAppBarState createState() => _MyAppBarState();
}

我该如何解决?

【问题讨论】:

    标签: flutter flutter-layout


    【解决方案1】:

    对于任何有同样问题的人,这就是我所做的

    class MyAppBar extends StatefulWidget implements PreferredSizeWidget  {
      @override
      _MyAppBarState createState() => _MyAppBarState();
    
      // you can replace 100 to whatever value you wish to use
    
      @override
      Size get preferredSize => new Size.fromHeight(100);
    }
    
    class _MyAppBarState extends State<MyAppBar> {
      @override
      Widget build(BuildContext context) {}
    }
    

    【讨论】:

      【解决方案2】:

      你可以使用PreferredSize,喜欢

      Scaffold(
          appBar: PreferredSize(
            preferredSize: Size.fromHeight(yourAppBarHeight),
            child:Container(child: Text("Body of your app bar")  
               )
             )
      

      如果您想将应用栏实现和代码分开,其他答案更适合您。

      【讨论】:

        【解决方案3】:

        覆盖preferredSize 方法并使用任何构造函数返回Size。

         @override
          Size get preferredSize => Size.fromHeight(50);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-08-28
          • 1970-01-01
          • 1970-01-01
          • 2021-01-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-29
          相关资源
          最近更新 更多