这里是小部件,我将其用作刷新小部件的功能(通常是具有按下功能的浮动按钮,所以我想在此处使用小部件的键来刷新小部件
Widget floatingButton(int index){
if(index == 0){
return FloatingActionButton(
backgroundColor: Color.fromRGBO(29, 142, 41,1),
disabledElevation: 12,
child: Icon(Icons.refresh),
onPressed: () {
prefix0.Dashboard k = new prefix0.Dashboard();
k.createState().reassemble();
});
}
else return null;
}
这是我要刷新的窗口小部件,在以后的生成器中使用其键“刷新”进行刷新
FutureBuilder(
key: refrKey,
future: model.tData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.data == null) {
return Center(
child: Column(children: [
SizedBox(
height: MediaQuery.of(context).size.height / 6,),
Text('no data')
]));
} else { ...
我认为setState()可以在非常短的时间内刷新整个ui。那不行吗?
setState()
方法将启动重新渲染状态实际所属的UI小部件。 setState()
方法不会像@Omi所说的那样启动重新渲染整个UI。您可以参考有关Adding interactivity to your app的官方文章。如果您已正确管理状态,则应在setState()
调用后自动反映在UI中。