对于单独的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);