Context

build()方法有一个context参数,它是BuildContext类的一个实例,表示当前widget在widget树中的上下文,每一个widget都会对应一个context对象(因为每一个widget都是widget树上的一个节点)。实际上,context是当前widget在widget树中位置中执行”相关操作“的一个句柄,比如它提供了从当前widget开始向上遍历widget树以及按照widget类型查找父级widget的方法。

 1 import 'package:flutter/material.dart';
 2 
 3 class TestContextRoute extends StatelessWidget {
 4   @override
 5   Widget build(BuildContext context) {
 6     return Scaffold(
 7       appBar: AppBar(
 8         title: Text('Test Context'),
 9       ),
10       body: Container(
11         child: Builder(builder: (context){
12           // 在Widget树中向上查找父级‘Scaffold’ widget
13           Scaffold scaffold = context.ancestorWidgetOfExactType(Scaffold);
14           // 直接返回 AppBar的title
15           return (scaffold.appBar as AppBar).title;
16         }),
17       ),
18     );
19   }
20 }

 

posted @ 2020-03-13 11:58  lai1322  阅读(196)  评论(0编辑  收藏  举报