如何添加add实现了有状态小部件中的PreferredSizeWidget



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

但我有一个Stateful小部件,并想将其与之一起使用。如何在Stateful窗口小部件上添加实现方法

当我添加实现PreferredSizeWidget时,它会给出错误

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

我该怎么修?

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

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) {}
}

你可以使用PreferredSize,就像一样

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

如果你想把你的应用程序栏实现和你的代码分开,另一个答案更适合你。

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

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

最新更新