我必须动态更改AppBar的外观和项目(通过点击另一个UI元素)。 最好的方法是什么?
我测试了几种方法。例如,
return Scaffold(
appBar: StreamBuilder(
stream: bloc.tasks,
builder: (context, AsyncSnapshot<List<UserTask>> tasks) {
return new AppBar();/// my setup is here
}),
但这显然不能编译。
答案 0 :(得分:3)
appBar
需要一个实现PreferredSizeWidget
的小部件,而StreamBuilder
不是一个。
您可以将该树包装成PreferredSize
:
Scaffold(
appBar: PreferredSize(
preferredSize: const Size(double.infinity, kToolbarHeight),
child: // StreamBuilder
),
)