Flutter中的“小部件构建(BuildContext上下文)”的“上下文”是什么意思?

时间:2019-02-01 13:53:41

标签: dart flutter

TL; DR:
是构建方法的第二个参数,还是以传统方式声明BuildContext参数的名称?

我正在通过分解“小部件构建(BuildContext上下文)”的每个元素来学习Flutter中的构建方法的基本语法。

到目前为止,我的理解如下:

  
      
  • @override: annotation
  •   
  • Widget build() {}: build method returns a widget
  •   
  • BuildContext:一个参数/参数,其中包含有关构建此小部件的树中位置的信息
  •   

但是,即使我阅读了相关的SO问题和官方文档,也不清楚“上下文”这个词的确切含义。

到目前为止,我确定的是名称“ context”可以更改为任意名称,这意味着它不必与“ context”相同。

2 个答案:

答案 0 :(得分:1)

从文档,BuildContext是:

  

小部件树中小部件位置的句柄。

contextBuildContext这被传递给小部件的制造商,以让它知道它是你的应用程序的widget树内实例。

一种常见用法是在使用Inherited Widget时将其传递给of方法。

调用Something.of(context),例如,返回Something相对于树中的最接近的小部件,可以提供您,Something

您可以详细了解BuildContext here in the docs

答案 1 :(得分:0)

ya Baka上下文仅仅是对流名称。 你也可以给其他名字 就像给定的例子 例如mycontext ...就是实例名称...您可以说...

import 'package:flutter/material.dart';
void main()
{

runApp(myApp());

}

 class myApp extends StatelessWidget{
  @override
  Widget build(BuildContext mycontext) {
    return MaterialApp(
      title: "my app",
      home: Scaffold(
      appBar: AppBar(),
      ),
    );
  }

}