Flutter statfulWidget 刷新两次


return MaterialApp(
home: Scaffold(
body: RefreshIndicator(
key: _globalKey,
onRefresh: refresh,
child: Sub(),
),
),
);

有简单的刷新指示器和子小部件

class Sub extends StatefulWidget {
@override
_SubState createState() => _SubState();
}
class _SubState extends State<Sub> {
@override
Widget build(BuildContext context) {
print('sub');
return Container(
color: Colors.amber,
child: SingleChildScrollView(
child: Column(
children: <Widget>[
Container(
height: 300,
color: Colors.blue,
),
Container(
height: 300,
color: Colors.red,
),
Container(
height: 300,
color: Colors.green,
),
],
),
),
);
}
}

子小部件在构建时打印"sub" 关键是当我触摸或只是稍微拖动页面(没有足够的调用刷新指示器(子小部件被重建两次。我不知道为什么,我不知道我怎么能爱。 (Statelesswidget可以解决这个问题,但我需要使用Statefulwidget(

这取决于你想在不重新构建的情况下实现什么,但我使用的替代方案是颤振图。创建一个对象Sub sub1=Sub();,在build()intiState()之外的某个地方,那么这个小部件将不会再次重建,值将相同。