美文网首页
Flutter-局部刷新Widget

Flutter-局部刷新Widget

作者: 木马不在转 | 来源:发表于2023-10-26 14:22 被阅读0次
Flutter的setState刷新是重新刷新整个布局的,要想局部刷新,目前有3个方法可以实现,一个是通过GlobalKey来实现,不过官方建议少用GlobalKey,所以下面只介绍剩余2种方法.

一、StreamBuilder

1、注册监听控制器

int value = 0;
final StreamController<int>  _streamController = StreamController();

2、包裹要更新的组件

StreamBuilder(
        stream: _streamController.stream,
       initialData: value,
       builder: (BuildContext context, AsyncSnapshot snapshot) {
        return Text('局部更新的组件');
      },

3、执行刷新

_streamController.add(a);

4、注意销毁

  _streamController.close();

二、StatefulBuilder

1、声明一个控制对象

final StateSetter mSetter;

2、包裹要更新的组件

StatefulBuilder(
  builder: (BuildContext context, StateSetter setState) {
    mSetter = setState;
    return Text("局部刷新的组件");
  },
),

3、执行刷新

this.mSetter(() {});

2种刷新方法各有优势,不过现在更好的局部刷新方式我觉得用GetX框架实现更为方便.

相关文章

网友评论

      本文标题:Flutter-局部刷新Widget

      本文链接:https://www.haomeiwen.com/subject/jkgyidtx.html