Flutter 容器盒子模型的使用示例
在講 Flutter 的盒子模型前,先看看HTML 中的盒子模型。如下圖所示,一個頁面元素包括了與父級容器的外邊距(margin),自身內(nèi)容與邊框的內(nèi)邊距(padding)。外邊距 和內(nèi)邊距都可以通過 LTRB (左、上、右、下)單獨(dú)設(shè)定四個方向的大小。
Flutter 的盒子模型和 HTML 的是一樣的,而通用的容器 Container 就相當(dāng)于是一個通用的容器,和 HTML 的 div 標(biāo)簽一樣。如果要控制一個元素的尺寸,外邊距,內(nèi)邊距和邊框,最通用的做法是使用 Container 容器將元素包裹。當(dāng)然 Flutter 也提供了一些更為具體的布局組件方便開發(fā),例如 :
- SizedBox:指定尺寸的容器。
- ConstaintedBox:帶約束條件的容器,如限制最小最大寬度和高度。
- DecoratedBox:帶裝飾的容器,比如漸變色。
- RotatedBox:旋轉(zhuǎn)一定角度的容器。
上面這些組件實(shí)際都可以通過 Container 的參數(shù)設(shè)置完成,只是開發(fā)的時候使用具體的容器可以減少組件參數(shù)。
樣例代碼
下面就使用一個具體的例子來說明盒子模型的具體概念,由于這里不涉及數(shù)據(jù)變化引起界面變化,因此直接使用 Stateless 無狀態(tài)組件,代碼如下:
class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter 盒子模型', theme: ThemeData( primarySwatch: Colors.blue, ), home: Scaffold( appBar: AppBar( title: Text('盒子模型'), ), body: Center( child: Container( width: 300, height: 300, color: Colors.blue, child: Container( color: Colors.red, margin: EdgeInsets.fromLTRB(10, 0, 20, 30), child: Container( margin: EdgeInsets.fromLTRB(10, 10, 10, 10), color: Colors.white60, child: Text('這是一長段文字,這是一長段文字,這是一長段文字,這是一長段文字,這是一長段文字,這是一長段文字'), padding: EdgeInsets.fromLTRB(10, 10, 10, 10), ), ), ), ), ), ); } }
這里在 body里的組件層級如下:
- Center:居中組件。
- Container:300 x 300大小,顏色為藍(lán)色,為最外層組件。
- Container:沒指定大小(通過盒子模型約束控制大?。?,與父級組件的外邊距為左10,上0,右20,下30,顏色為紅色。
- Container:沒指定大小,與父級組件的上下左右外邊距均為10,內(nèi)邊距上下左右均為10,顏色為白色。
- Text:顯示多行文本,用于展示內(nèi)邊距效果。
- Container:300 x 300大小,顏色為藍(lán)色,為最外層組件。
運(yùn)行后的界面如下圖所示,可以看到和預(yù)期一致。
以上就是Flutter 容器盒子模型的使用示例的詳細(xì)內(nèi)容,更多關(guān)于Flutter 容器的盒子模型的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android中TelephonyManager用法實(shí)例
這篇文章主要介紹了Android中TelephonyManager用法,結(jié)合實(shí)例形式分析了TelephonyManager類的功能,使用技巧與相關(guān)注意事項,需要的朋友可以參考下2016-03-03Flutter?webview與網(wǎng)頁通訊交互實(shí)現(xiàn)
最近要在Flutter項目的基礎(chǔ)上加一個實(shí)時定位的功能,下面這篇文章主要給大家介紹了關(guān)于Flutter?webview與網(wǎng)頁通訊交互實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04Android廣播接實(shí)現(xiàn)監(jiān)聽電話狀態(tài)(電話的狀態(tài),攔截)
這篇文章主要介紹了Android廣播接實(shí)現(xiàn)監(jiān)聽電話狀態(tài)(電話的狀態(tài),攔截) 的相關(guān)資料,需要的朋友可以參考下2016-03-03android實(shí)現(xiàn)上下滾動的TextView
android實(shí)現(xiàn)上下滾動的TextView,需要的朋友可以參考一下2013-05-05Android計步模塊實(shí)例代碼(類似微信運(yùn)動)
本篇文章主要介紹了Android計步模塊實(shí)例代碼(類似微信運(yùn)動),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07Android Studio導(dǎo)入Eclipse項目時.so庫文件的解決方法
這篇文章主要介紹了Android Studio導(dǎo)入Eclipse項目時項目中".so"庫文件的解決方法,需要的朋友可以參考下2018-06-06