真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

flutter定位柵欄,flutter 絕對定位

flutter中流式布局

流式布局(Liquid)的特點(diǎn)(也叫"Fluid") 是頁面元素的寬度按照屏幕分辨率進(jìn)行適配調(diào)整,但整體布局不變。柵欄系統(tǒng)(網(wǎng)格系統(tǒng)),用戶標(biāo)簽等。在Flutter中主要有Wrap和Flow兩種Widget實(shí)現(xiàn)。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括富平網(wǎng)站建設(shè)、富平網(wǎng)站制作、富平網(wǎng)頁制作以及富平網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,富平網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到富平省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

在介紹Row和Colum時,如果子widget超出屏幕范圍,則會報溢出錯誤,在Flutter中通過Wrap和Flow來支持流式布局,溢出部分則會自動折行。

上述有很多屬性和Row的相同,其意義其實(shí)也是相同的,這里我就不一一介紹了,主要介紹下不同的屬性:

我們一般很少會使用Flow,因?yàn)槠溥^于復(fù)雜,需要自己實(shí)現(xiàn)子widget的位置轉(zhuǎn)換,在很多場景下首先要考慮的是Wrap是否滿足需求。Flow主要用于一些需要自定義布局策略或性能要求較高(如動畫中)的場景。Flow有如下優(yōu)點(diǎn):

我們對六個色塊進(jìn)行自定義流式布局:

實(shí)現(xiàn)TestFlowDelegate:

可以看到我們主要的任務(wù)就是實(shí)現(xiàn)paintChildren,它的主要任務(wù)是確定每個子widget位置。由于Flow不能自適應(yīng)子widget的大小,我們通過在getSize返回一個固定大小來指定Flow的大小,實(shí)現(xiàn)起來還是比較麻煩的。

Flutter基礎(chǔ)篇——常用Widget

對于初學(xué)flutter的朋友來說,要知道,flutter的UI萬物皆Widget。

flutter所寫的頁面的結(jié)構(gòu)可以被看成套娃,一層套一層,一層套一層,一層套一層。。。。。。

Flutter Widget采用現(xiàn)代響應(yīng)式框架構(gòu)建,這是從 React 中獲得的靈感,中心思想是用widget構(gòu)建你的UI。 Widget描述了他們的視圖在給定其當(dāng)前配置和狀態(tài)時應(yīng)該看起來像什么。當(dāng)widget的狀態(tài)發(fā)生變化時,widget會重新構(gòu)建UI,F(xiàn)lutter會對比前后變化的不同, 以確定底層渲染樹從一個狀態(tài)轉(zhuǎn)換到下一個狀態(tài)所需的最小更改。

Text : 該 widget 可讓創(chuàng)建一個帶格式的文本。

Row 、 Column : 這些具有彈性空間的布局類Widget可讓您在水平( Row )和垂直( Column )方向上創(chuàng)建靈活的布局。

Stack :取代線性布局 (和Android中的LinearLayout相似),Stack允許子 widget 堆疊, 你可以使用 Positioned 來定位他們相對于 Stack 的上下左右四條邊的位置。

Container : Container 可讓您創(chuàng)建矩形視覺元素。 您可以為 Container 裝飾一個 BoxDecoration , 如 background、一個邊框、或者一個陰影。 Container 也可以具有邊距(margins)、填充(padding)和應(yīng)用于其大小的約束(constraints)。另外, Container 可以使用矩陣在三維空間中對其進(jìn)行變換。

具體的演示見我另外的博客

有一部分Widget都有一個 child 屬性,用于容納唯一的子Widget。

例如:Container、Center、Padding、Align等Widget。

還有一部分Widget允許存在多個子Widget,用 children 作為屬性。

例如:Row、Column、Stack等Widget。

在StatefulWidget調(diào)用createState之后,框架將新的狀態(tài)插入樹種,然后調(diào)用狀態(tài)對象的initState。子類化State可以重寫initState,以完成僅需要一次執(zhí)行的工作。當(dāng)然在initState的實(shí)現(xiàn)中需要調(diào)用super.initState

當(dāng)一個狀態(tài)對象不再需要時,框架調(diào)用狀態(tài)對象的dispose。也可以通過覆蓋dispose方法來執(zhí)行清理工作。

OVER~

Flutter-布局

flutter布局需要先了解flutter所有布局的widget,首先flutter布局分為Container、RenderObjectWidget和ParentDataWidget。而RenderObject中經(jīng)常使用的有SingleChildRenderObjectWidget(單節(jié)點(diǎn))和MultiChildRenderObjectWidget(多節(jié)點(diǎn))。

flutter中基礎(chǔ)的widget,可以為子節(jié)點(diǎn)設(shè)置內(nèi)間距。當(dāng)padding沒有child的時候,它會產(chǎn)生一個寬為left+right,高為top+bottom的區(qū)域,當(dāng)padding的child不為空的時候會將約束傳遞給child。一般在使用間距的地方使用。

設(shè)置child的對齊方式,并根據(jù)child的尺寸調(diào)整自身的尺寸。

設(shè)置透明度

用于矩形圓角裁剪組件

用于圓形裁剪,但是可以添加陰影和Z軸

給組件繪制區(qū)域大小

百分比布局,可以通過widthFactor或者h(yuǎn)eightFactor設(shè)置寬高占比

子組件疊加布局,也稱絕對布局

mainAxisAlignment: start:頂頭 center:居中 end:接尾 spaceAround:中間的孩子均分,兩頭的孩子空一半 spaceBetween:頂頭接尾其他均分 spaceEvenly:均勻分布

crossAxisAlignment: start:頂頭 center:居中 end:接尾 stretch:伸展

mainAxisSize: max:父容器沒有約束的話,column自身會盡可能延伸 min:不會延伸,只會包裹自己

屬性和column屬性一致,只是方向不同,一個豎直方向一個水平方向。使用方法也類似。

Wrap可以實(shí)現(xiàn)流布局,單行的Wrap跟Row一樣,單列的Wrap則跟Colum一樣.但是Row和Column都是單行單列的,Wrap可以多行多列。

Wrap能做的事情,flow也能做。但是flow會比較復(fù)雜點(diǎn)。flow類似于OC中CollectionLayout,需要自己實(shí)現(xiàn)子組件的位置以及大小。但是flow的性能比較好,靈活。

自定義FlowDelegate

運(yùn)行結(jié)果:

絕對定位布局,用于指定組件的具體位置

Expanded組件可以使row、column或者flex子組件在其主軸上展開并填充可用空間。如果多個組件展開的話,會按照比例分割。

Tip:Expanded組件要在row、column或者flex的子組件中使用。具有兩個屬性,child:子組件,flex:所占比例


當(dāng)前標(biāo)題:flutter定位柵欄,flutter 絕對定位
網(wǎng)站URL:http://weahome.cn/article/hodcps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部