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 }