Flutter 如何在调整窗口大小时设置新状态?
如何在调整窗口大小时设置新状态? 我试过这个。我真的需要改变状态Flutter 如何在调整窗口大小时设置新状态?,flutter,Flutter,如何在调整窗口大小时设置新状态? 我试过这个。我真的需要改变状态 @override Widget build(BuildContext context) { return LayoutBuilder( builder: (context, constraint) { setState(() { if (constraint.width > 500) { _calendarType = CalendarTy
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraint) {
setState(() {
if (constraint.width > 500) {
_calendarType = CalendarType.WEEK_MODE;
} else {
_calendarType = CalendarType.DAY_MODE;
}
});
return Container(
color: Colors.white,
child: ...;
},
);
}
你这样做怎么样
。。。
如果(constraint.width>500){
_calendarType=calendarType.WEEK\u模式;
}否则{
_calendarType=calendarType.DAY\u模式;
}
...
我正在生成方法中调用setState。有什么副作用吗?刚刚更新了代码,在build方法中调用setState有副作用。只要确保您使用的是statefullWidget,您还可以通过使用一个无状态小部件和一个Bloc来实现上述功能,Bloc在windows resizeWidget为statefull时更新状态。如果build方法在调用setState时运行,这不是一个无休止的循环吗?在build方法中调用setState将尝试在小部件生成之前重建小部件树,因此您需要尝试不在那里使用setState。你有没有像我上面的例子那样尝试过?