什么是Flutter中的一个元素?

rvpgvaaj  于 2023-03-13  发布在  Flutter
关注(0)|答案(4)|浏览(108)

我很难理解Flutter中的一个元素是什么。“在树中的特定位置示例化一个小部件”. . .我想现在我不得不问,什么是树。
一开始,我以为树是指小部件的状态,但是StatelessWidget也有createElement,所以看起来不是这样。然后,我以为树是指父/子关系,但是我不清楚。最后,听起来元素有点像小部件在特定时间和位置的快照。但相关的方法似乎没有反映出这一点,我说得对吗

vshtjzan

vshtjzan1#

Flutter创建了一个可视化的元素树,它就像是Widget的可变副本,你通常不直接处理元素,框架会处理。
因此,(非常简化的版本)您的树可能看起来像这样:

MediaQuery 
-- Theme Data
---- Scaffold
------ AppBar
------ Body
--------- Column
----------- Text
----------- Text
----------- Row
------------- Button
------------- Button
------ FloatingActionButton

这些Text很可能是被多次重用的同一个Widget,但是在树中存在唯一的Element

5jdjgkvh

5jdjgkvh2#

Flutter为小部件创建元素(包括子小部件),它显示在屏幕上,并有一个小部件的引用。Flutter框架创建元素树,代表屏幕上呈现的小部件。元素代表使用小部件配置树中的特定位置。如果父小部件重建并创建一个新的小部件,元素可以更改。元素(可变属性)由createElement()方法创建,框架调用mount方法将新创建的元素添加到树中给定父节点的给定槽。
有关详细信息,请参阅此documentation

cyej8jka

cyej8jka3#

在Flutter中,widget是UI的配置,代表元素或屏幕上显示的UI的主类是Element。即,Widget实际上是元素的配置数据,Widget树实际上是配置树,因为元素树是在我们创建Widget树时自动生成的。
此处提供更多信息-https://api.flutter.dev/flutter/widgets/Element-class.html

siotufzp

siotufzp4#

事实上答案已经在你所列举的内容中了,元素是widget的示例化,在面向对象程序设计中,你首先创建类,然后将类示例化为对象;在Flutter中,小部件是类,这里Flutter为您创建了标准类,您也可以通过配置小部件来定制标准类,但您不需要从类中创建对象Flutter会在编译时和运行时为你做这件事。你在屏幕上看到的是对象(称为“元素”),您可以从一个小部件创建多个元素。()方法放置小部件(类别)生效,然后由Flutter引擎构建相应的元素并插入屏幕。构建()方法是您可以用来在屏幕上创建更改的主要机制,在build()方法中,您可以重新配置您的小部件,通过调用build()使其生效。

相关问题