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小部件在构建时打印“ sub” 关键是当我触摸或只是稍微拖动页面(没有足够的调用refreshindicator)子窗口小部件时重建TWICE。我不知道为什么,我也不知道该怎么打。 (statelesswidget可以解决该问题,但我需要使用statefulwidget)
答案 0 :(得分:0)
这取决于您想要不重建而实现的目标,但是我使用的替代方法是扑扑图表。在Sub sub1=Sub();
或build()
之外的某个地方创建对象intiState()
,此小部件将不会再次重建,并且值将相同。