是通过轻拂键刷新小部件的方法

问题描述 投票:1回答:2

这里是小部件,我将其用作刷新小部件的功能(通常是具有按下功能的浮动按钮,所以我想在此处使用小部件的键来刷新小部件

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 { ...
flutter dart flutter-layout flutter-dependencies dart-pub
2个回答
0
投票

我认为setState()可以在非常短的时间内刷新整个ui。那不行吗?


0
投票

setState()方法将启动重新渲染状态实际所属的UI小部件。 setState()方法不会像@Omi所说的那样启动重新渲染整个UI。您可以参考有关Adding interactivity to your app的官方文章。如果您已正确管理状态,则应在setState()调用后自动反映在UI中。

© www.soinside.com 2019 - 2024. All rights reserved.