關于Flutter的那些事兒

      網友投稿 705 2025-04-04

      深入理解 flutter 布局約束 首先,

      上層 widget 向下層 widget 傳遞約束條件;

      然后,下層 widget 向上層 widget 傳遞大小信息。

      最后,上層 widget 決定下層 widget 的位置。

      更多細節:

      Widget 會通過它的 父級 獲得自身的約束。約束實際上就是 4 個浮點類型的集合:最大/最小寬度,以及最大/最小高度。

      然后,這個 widget 將會逐個遍歷它的 children 列表。向子級傳遞 約束(子級之間的約束可能會有所不同),然后詢問它的每一個子級需要用于布局的大小。

      然后,這個 widget 就會對它子級的 children 逐個進行布局。(水平方向是 x 軸,豎直是 y 軸)

      最后,widget 將會把它的大小信息向上傳遞至父 widget(包括其原始約束條件)。

      了解如何為特定 widget 制定布局規則

      掌握通用布局是非常重要的,但這還不夠。

      應用一般規則時,每個 widget 都具有很大的自由度,所以沒有辦法只看 widget 的名稱就知道可能它長什么樣。

      如果你嘗試推測,可能就會猜錯。除非你已閱讀 widget 的文檔或研究了其源代碼,否則你無法確切知道 widget 的行為。

      布局源代碼通常很復雜,因此閱讀文檔是更好的選擇。但是當你在研究布局源代碼時,可以使用 IDE 的導航功能輕松找到它。

      下面是一個例子:

      關于Flutter的那些事兒

      在你的代碼中找到一個 Column 并跟進到它的源代碼。為此,請在 (Android Studio/IntelliJ) 中使用 command+B(macOS)或 control+B(Windows/Linux)。你將跳到 basic.dart 文件中。由于 Column 擴展了 Flex,請導航至 Flex 源代碼(也位于 basic.dart 中)。

      向下滾動直到找到一個名為 createRenderObject() 的方法。如你所見,此方法返回一個 RenderFlex。它是 Column 的渲染對象,現在導航到 flex.dart 文件中的 RenderFlex 的源代碼。

      向下滾動,直到找到 performLayout() 方法,由該方法執行列布局。

      CSS

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【JavaScript】頁面捕捉和正則表示
      下一篇:Excel中邏輯函數的實例應用匯總
      相關文章
      亚洲AV成人无码网天堂| 亚洲伊人色一综合网| 亚洲色成人四虎在线观看| 亚洲国产日韩女人aaaaaa毛片在线| 亚洲一区二区电影| 亚洲精品在线观看视频| 亚洲国产精品线在线观看| 日韩亚洲欧洲在线com91tv| 亚洲日韩精品一区二区三区| 国产亚洲精品看片在线观看| 色噜噜亚洲精品中文字幕| 久久影视国产亚洲| 亚洲乱码中文字幕综合| 亚洲精品无码不卡在线播HE| 国产亚洲精品自在久久| 国产亚洲精品岁国产微拍精品| 亚洲AV综合色区无码一区爱AV | 亚洲中文字幕无码久久综合网| 久久久无码精品亚洲日韩软件| 在线日韩日本国产亚洲| 亚洲人色婷婷成人网站在线观看| 在线a亚洲v天堂网2019无码| 亚洲啪啪综合AV一区| 亚洲国产精品久久久天堂| 亚洲av无码一区二区乱子伦as| 久久亚洲AV成人无码国产| 亚洲字幕在线观看| 亚洲欧美日韩综合俺去了| 国产精品亚洲精品日韩电影| 亚洲片一区二区三区| 国产亚洲精品无码专区| 亚洲国产成人一区二区三区| 亚洲日本在线观看| 亚洲人成免费电影| 亚洲精品永久在线观看| 亚洲国产午夜福利在线播放| 国产成人A亚洲精V品无码| 亚洲第一区香蕉_国产a| avtt天堂网手机版亚洲| 亚洲gay片在线gv网站| 中文字幕在亚洲第一在线|