我很难理解Flutter中的一个元素是什么。“在树中的特定位置示例化一个小部件”. . .我想现在我不得不问,什么是树。一开始,我以为树是指小部件的状态,但是StatelessWidget也有createElement,所以看起来不是这样。然后,我以为树是指父/子关系,但是我不清楚。最后,听起来元素有点像小部件在特定时间和位置的快照。但相关的方法似乎没有反映出这一点,我说得对吗
vshtjzan1#
Flutter创建了一个可视化的元素树,它就像是Widget的可变副本,你通常不直接处理元素,框架会处理。因此,(非常简化的版本)您的树可能看起来像这样:
MediaQuery -- Theme Data ---- Scaffold ------ AppBar ------ Body --------- Column ----------- Text ----------- Text ----------- Row ------------- Button ------------- Button ------ FloatingActionButton
这些Text很可能是被多次重用的同一个Widget,但是在树中存在唯一的Element。
Text
Widget
Element
5jdjgkvh2#
Flutter为小部件创建元素(包括子小部件),它显示在屏幕上,并有一个小部件的引用。Flutter框架创建元素树,代表屏幕上呈现的小部件。元素代表使用小部件配置树中的特定位置。如果父小部件重建并创建一个新的小部件,元素可以更改。元素(可变属性)由createElement()方法创建,框架调用mount方法将新创建的元素添加到树中给定父节点的给定槽。有关详细信息,请参阅此documentation
cyej8jka3#
在Flutter中,widget是UI的配置,代表元素或屏幕上显示的UI的主类是Element。即,Widget实际上是元素的配置数据,Widget树实际上是配置树,因为元素树是在我们创建Widget树时自动生成的。此处提供更多信息-https://api.flutter.dev/flutter/widgets/Element-class.html
widget
siotufzp4#
事实上答案已经在你所列举的内容中了,元素是widget的示例化,在面向对象程序设计中,你首先创建类,然后将类示例化为对象;在Flutter中,小部件是类,这里Flutter为您创建了标准类,您也可以通过配置小部件来定制标准类,但您不需要从类中创建对象Flutter会在编译时和运行时为你做这件事。你在屏幕上看到的是对象(称为“元素”),您可以从一个小部件创建多个元素。()方法放置小部件(类别)生效,然后由Flutter引擎构建相应的元素并插入屏幕。构建()方法是您可以用来在屏幕上创建更改的主要机制,在build()方法中,您可以重新配置您的小部件,通过调用build()使其生效。
4条答案
按热度按时间vshtjzan1#
Flutter创建了一个可视化的元素树,它就像是Widget的可变副本,你通常不直接处理元素,框架会处理。
因此,(非常简化的版本)您的树可能看起来像这样:
这些
Text
很可能是被多次重用的同一个Widget
,但是在树中存在唯一的Element
。5jdjgkvh2#
Flutter为小部件创建元素(包括子小部件),它显示在屏幕上,并有一个小部件的引用。Flutter框架创建元素树,代表屏幕上呈现的小部件。元素代表使用小部件配置树中的特定位置。如果父小部件重建并创建一个新的小部件,元素可以更改。元素(可变属性)由createElement()方法创建,框架调用mount方法将新创建的元素添加到树中给定父节点的给定槽。
有关详细信息,请参阅此documentation
cyej8jka3#
在Flutter中,
widget
是UI的配置,代表元素或屏幕上显示的UI的主类是Element
。即,Widget实际上是元素的配置数据,Widget树实际上是配置树,因为元素树是在我们创建Widget树时自动生成的。此处提供更多信息-https://api.flutter.dev/flutter/widgets/Element-class.html
siotufzp4#
事实上答案已经在你所列举的内容中了,元素是widget的示例化,在面向对象程序设计中,你首先创建类,然后将类示例化为对象;在Flutter中,小部件是类,这里Flutter为您创建了标准类,您也可以通过配置小部件来定制标准类,但您不需要从类中创建对象Flutter会在编译时和运行时为你做这件事。你在屏幕上看到的是对象(称为“元素”),您可以从一个小部件创建多个元素。()方法放置小部件(类别)生效,然后由Flutter引擎构建相应的元素并插入屏幕。构建()方法是您可以用来在屏幕上创建更改的主要机制,在build()方法中,您可以重新配置您的小部件,通过调用build()使其生效。