美文网首页
Flutter ---- Key

Flutter ---- Key

作者: 阿木小丸子 | 来源:发表于2020-11-22 18:04 被阅读0次

Key

Key 本身是一个抽象类

  • LocalKey:用作diff算法的核心所在,用作Element和Widget进行比较!
    • ValueKey :以一个数据作为key,例如数字、字符
    • ObjectKey :以Object对象作为key
    • UniqueKey:可以保证key的唯一性!(一旦使用UniqueKey,那么就不存在Element复用了)
  • GlobalKey:可以获取到对应的Widget的State对象!
class GlobalKeyDemo extends StatelessWidget {
 final GlobalKey<_ChildPageState> _globalKey = GlobalKey();

 @override
 Widget build(BuildContext context) {
   return Scaffold(
     appBar: AppBar(),
     body: ChildPage(key: _globalKey),
     floatingActionButton: FloatingActionButton(
       child: Icon(Icons.add),
       onPressed: () {
         _globalKey.currentState.data =
             'old:' +_globalKey.currentState.count.toString();
         _globalKey.currentState.count ++;
         _globalKey.currentState.setState(() { });
       },
     ),
   );
 }
}

class ChildPage extends StatefulWidget {
 ChildPage({Key key}) : super(key: key);
 @override
 _ChildPageState createState() => _ChildPageState();
}

相关文章

  • Flutter key

    新创建一个Flutter Application的时候,默认生成的代码里面有这么一段 title很好理解,给App...

  • Flutter ---- Key

    Key Key 本身是一个抽象类 LocalKey:用作diff算法的核心所在,用作Element和Widget进...

  • Flutter Key

    什么是key Key 能够帮助开发者在 Widget tree 中保存状态。 Flutter | 深入浅出Key ...

  • Flutter Key

    LocalKey 应用于拥有相同父 Element 的小部件进行比较的情况 1. UniqueKey A key ...

  • The Key of Widget in Flutter

    The Key of Widget in Flutter 当我们刚开始使用Flutter,我们在继承Statele...

  • Flutter 详解 Key

    转载 原文链接:https://juejin.im/post/6863300824660082701作者: fgy...

  • Flutter详解 Key

    Key 是什么 key是用来作为Widget、Element和SemanticsNode的标示,仅仅用来更新wid...

  • flutter GlobalKey、Key

    Key 局部key只会比较树中相同位置的widget,如children中index 为1的element不会复用...

  • flutter的key

    Key本身是一个抽象类,用作diff的核心算法比较Widget。-ValueKey 以一个数据作为Key-Obje...

  • Flutter中Widget之key原理探索

    开始 在Flutter的每个Widget中, 都会有key这个可选属性. 在刚开始学习flutter时, 基本就直...

网友评论

      本文标题:Flutter ---- Key

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