Flutter中的Key
作者:
忆往不纠 | 来源:发表于
2021-03-30 18:07 被阅读0次
Key基本概念
Key本身就是个抽象类 大致分两大类(1. LocalKey 和 2. Globalkey )
1. LocalKey 用作diff算法的核心所在!用作Element和Widget
进行比较!
- ValueKey 以一个数剧作为Key。列入数字、字符!
- ObjectKey 以Object对象作为Key!
- UniqueKey 可以保证Key的唯一性!(注意:一旦使用UniqueKey那么就不存在Element复用了,用的很少)
2. Globalkey
- 可以获取到对应的Widget的State对象!
- 利用这个GloableKey可以做到局部更新,
只更新对应需要更改的Widget小组件,节省性能
使用方式:
1. 创建Globalkey
```
final GlobalKey<_ChildPageState> _globalKey = GlobalKey();
```
2.重写构造方法
```
ChildPage({Key key}) :super(key:key);
```
3.生成Childpage对象
```
ChildPage(key:_globalKey) ;
```
4.在相应地方利用_globalKey取出相应的Widget 和State 及 Context
```
###_globalKey.currentContext
###_globalKey.currentWidget
_globalKey.currentState.setState((){});
```
本文标题:Flutter中的Key
本文链接:https://www.haomeiwen.com/subject/gtyghltx.html
网友评论