Flutter 基礎篇(十七) 尺寸限制容器

2021-09-28 18:27:58 字數 1213 閱讀 8926

flutter中,提供了constrainedboxsizedboxunconstrainedboxaspectratio來限制子元素的尺寸。

constrainedbox主要用於對子元件進行額外的約束,比如,約束子元件的最小高度:

class constrainedwidget extends statelesswidget

}

上面的例子中,通過boxconstraints來設定限制條件,它的定義如下:

const boxconstraints()
除此以外,它還定義了乙個便捷的建構函式,比如boxconstraints.tight(size size)生成給定大小的限制;boxconstraints.expand()可以用於生成乙個盡可能大的填充容器。

sizedbox用於給子元素指定固定的寬高,示例:

class constrainedwidget extends statelesswidget

}

執行結果就是乙個 80 * 80 的小方塊,在此就不上了。

如果乙個元件有多個限制,意思就是多個constrainedbox,那麼哪個會生效呢?看乙個示例:

class constrainedwidget extends statelesswidget

}

上面的元件decoratedbox有兩個限制容器,他們的限制條件都不同,最後生效的是:寬90,高60.

也就是說,如果有多個限制條件,就會合併這些限制條件,取父子中數值較大者。

unconstrainedbox不會對子元件產生任何約束條件,它允許子元件按照其本身的大小繪製,它的作用是去除多重限制的條件。示例:

class constrainedwidget extends statelesswidget

}

結果是乙個 90*20 的小方塊,unconstrainedbox把頂層的約束條件去除了,所以子元件生效的是裡面的約束條件。

Flutter 基礎篇(十一) 布局元件

布局元件是指包含乙個或多個子元件的元件,不同的布局元件對子元件的排列方式不同。在前面的文章有提到,element樹才是最終的繪製樹,它是由widget樹來建立的,widget只是element的配置資料。在flutter中,根據widget是否需要包含子節點將widget分為三類,分別對應三種ele...

Flutter 基礎篇(五) Text 元件

text元件用於顯示簡單樣式文字,它包含一些控制文字顯示的屬性。其中,它有乙個必須的引數,就是文字字串。void main override widget build buildcontext context 執行結果,在螢幕 顯示了jonas。除此以外,常用的屬性還有 textalign.left...

Flutter 基礎篇(十三) 彈性布局

彈性布局,不是flutter特有的一種布局方式,在前端的各個領域中都存在,比如瀏覽器端通過flex來實現彈性布局。在flutter中,主要通過flex和expanded來實現彈性布局。flex元件可以沿著水平或垂直方向排列的子元件,如果你明確了主軸的方向,那麼更加應該使用row或column來代替f...