Flutter常用組件

使用Flutter也有一段時間,也寫過完整的項目整理下Flutter常用的組件

Scaffold
Scaffold(
// 基礎常用項
appBar:<AppBar>,//導航條
body:<Widget>吧史, //內容區(qū)
bottomNavigationBar:<Widget>,//底部導航菜單
bottomSheet:<Widget>,//底部工作表
backgroundColor:<Color>,//當前頁的背景顏色resizeToAvoidBottomInset:<boolean>,//是否調整自身大小primary:<boolean>瓤的,//是否顯示在屏幕頂部extendBody:<boolean>,//是否將主體將擴展到基架的底部extendBodyBehindAppBar:<boolean>吞歼,//是否將正文的頂部與應用欄的頂部對齊
// 浮動操作按鈕
floatingActionButton:<Widget>圈膏,//浮動操作按鈕floatingActionButtonLocation:<Location>,//浮動操作按鈕位置floatingActionButtonAnimator:<Animator>篙骡,//浮動操作按鈕動畫
// 在基架底部的按鈕組
persistentFooterButtons:<List<Widget>>稽坤,//組件列表persistentFooterAlignment:<AlignmentDirectional>,//對齊方式
// 左側抽屜菜單
drawer: <Widget>drawerEnable0penDragGesture:<boolean>糯俗,//是否可以通過拖動手勢打開onDrawerChanged:<Function>尿褪,//抽狀態(tài)改變時的回調
//右側抽屜菜單
endDrawer:<Widget>
endDrawerEnable0penDragGesture:<boolean>,//是否可以通過手勢打開onEndDrawerChanged:<Function>得湘,//抽狀態(tài)改變時的回調
//抽屜通用設置項
drawerDragStartBehavior:<Behavior>杖玲,//抽屜菜單拖動開始行為的處理方式drawerScrimColor:<Color>,//抽屜菜單打開時遮罩的顏色drawerEdgeDragWidth:<double>淘正,//抽菜單拖拽區(qū)域的寬度
// 重構標識 ID
restorationId: <String>)
AppBar
AppBar(
primary:<boolean>摆马,//是否是主要的
title:<widget>,//標題(默認靠近左側)
titleSpacing:<double>鸿吆,//標題的空隙
titleTextStyle:<TextStyle>
centerTitle:<boolean>囤采,//是否將標題居中顯示
leading:<Widget>,// Leading 組件
leadingWidth:<double>,// Leading 的寬度
toolbarOpacity:<double>惩淳,//導航條的透明度
toolbarHeight:<double>蕉毯,//導航條的高度
toolbarTextStyle:<TextStyle>,//除了 title 之外的文本樣式
automaticallyImplyLeading:<boolean>,//是否自動隱藏
Leadingactions:<List<Widget>>恕刘,//右側操作按鈕列表
flexibleSpace:<widget>缤谎,//填充剩余空間
bottom:<widget>,//用于填充導航欄底部的空間
bottomOpacity:<double>褐着,// 底部空間的透明度
shape:<ShapeBorder>坷澡,//導航條的形狀(可以改成圓角的)
excludeHeaderSemantics:<boolean>,//是否使用 Semantics 包裹標題
// 用于控制陰影
elevation:<double>含蓉,//景深(用于控制陰影的深度)
scrolledUnderElevation:<double>频敛,//滾動到導航條底部的距離
notificationPredicate=<Function>,// Body 滾動距離通知
shadowColor:<Color>馅扣,//陰影的顏色
// 主題色調等
surfaceTintColor:<Color>斟赚,//與背景疊加的顏色
backgroundColor:<Color>,//背景顏色
foregroundColor:<Color>差油,//前景顏色
iconTheme:<IconThemeData>拗军,//圖標主題
actionsIconTheme:<IconThemeData>,//右側操作按鈕主題
systemOverlayStyle:<SystemUi0verlayStyle>蓄喇,// 狀態(tài)欄的樣式
forceMaterialTransparency:<boolean>发侵,//強制使用 Material 樣式
//對于超出部分的處理
clipBehavior:<Clip>)
Container
Container(
width:<double>,// 寬度
height:<double>妆偏,// 高度
// 外間距margin:<EdgeInsets>
padding: <EdgeInsets>// 內間距
// 對齊方式alignment: <Alignment>,
child: <widget>,
/1 子節(jié)點
clipBehavior:<Clip>刃鳄,//如何處理超出部分
// 樣式設置color:<Color>,//背景顏色
decoration:<Decoration>钱骂,//樣式裝飾器
foregroundDecoration:<Decoration>叔锐,//前景裝飾器
// 布局約束
constraints:<BoxConstraints>,
// 位置變換
transform:<Matrix4>
transformAlignment: <Alignment>,
)
SizedBox
// 主要用于設定一塊區(qū)域的大小
SizedBox(
width:<double>, // 容器的寬
height:<double>见秽,// 容器的高
child:<Widget>愉烙, // 內容節(jié)點
)
Center
//相較于父容器進行居中顯示Center(
widthFactor:<double>, // 寬基于內容的倍數解取,默認為盡可能大
heightFactor:<double>齿梁,// 高基于內容的倍數,默認為盡可能大
child: <Widget>,// 內容節(jié)點
);
Row
Row(
mainAxisAlignment:<MainAxisAlignment>肮蛹,//主軸對齊方式
mainAxisSize:<MainAxisSize>勺择,// 主軸相對于父容器分配的空間
crossAxisAlignment:<CrossAxisAlignment>,//交叉軸的對其方式
textDirection:<TextDirection>伦忠,//文本布局方向
verticalDirection:<VerticalDirection>省核,//垂直布局子項的順序
textBaseline:<TextBaseline>,//文本對齊基線
children:<List<Widget>>昆码,//子控件
);
Column
Column(
mainAxisAlignment:<MainAxisAlignment>气忠,//主軸對齊方式
mainAxisSize:<MainAxisSize>邻储,//主軸相對于父容器分配的空間
crossAxisAlignment:<CrossAxisAlignment>,//交叉軸的對其方式
textDirection:<TextDirection>旧噪,//文本布局方向
verticalDirection:<VerticalDirection>吨娜,//垂直布局子項的順序
textBaseline:<TextBaseline>,//文本對齊基線
children:<List<Widget>>淘钟,// 子控件
Flexible
// 基礎彈性盒宦赠,可以更改子控件的分配占比;Flexible(
// 子控件占比flex: <int>
child:<Widget>,// 子控件
fit:<FlexFit>米母, // 對于子控件的填充方式
);
// 空白塊勾扭,用于撐開不需要的空白區(qū)域Spacer(flex: <int>);
// 將子控件強制填充滿剩余空間Expanded(// 子控件占比flex: <int>,child:<Widget>,//子控件
//此處是使用 Row 的布局來作演示,
// 如果是 Column 的話铁瞒,把下面圖旋轉 98°即可;
Wrap
Wrap(
direction:<Axis>妙色,//布局方式(水平或垂直)
alignment:<WrapAlignment>,//水平方向排列方式
runAlignment:<WrapAlignment>慧耍,//交叉軸方的對齊方式
crossAxisAlignment:<WrapCrossAlignment>身辨,//垂直方向排列方式
spacing:<double>,//水平間隙
runSpacing:<double>芍碧,//垂直間隙
textDirection:<TextDirection>煌珊,//水平布局子項的順序
verticalDirection:<VerticalDirection>,//垂直放置子對象的順序
clipBehavior:<Clip>师枣,//對于超出部分的處理方式
children:<List<Widget>>怪瓶,// 子控件
AspectRatio
// 用于約束子控件的寬高比,
// 具體的尺寸依賴于父元素的容器大小;
AspectRatio(
aspectRatio:<double>萧落,//寬高比践美,如:4/3,16/9;
child: <widget>,// 子控件
);
Stack
// 所有子控件以堆疊的形式顯示Stack(
alignment:<AlignmentDirectional>找岖,//子控件對齊方式
textDirection:<TextDirection>陨倡,//文本排列方向
fit:<StackFit>,// 子控件填充方式
clipBehavior:<Clip>许布,//對于超出部分的處理方式
children:<List<Widget>>兴革,//子控件
Positioned
Positioned(
left: <double>,// 距離左側的距離
top: <double>,// 距離頂部的距離
right:<double>, //距離右側的距離
bottom:<double>蜜唾,//距離底部的距離
width:<double>杂曲, //寬(如果同時具備 left/right 時可忽略)
height:<double>,//高(如果同時具備 top/bottom 時可忽略)
child:<widget>袁余, // 子控件
ListView
ListView(
scrollDirection:<Axis>擎勘,//滾動方向(水平或垂直)
reverse:<boolean>,//是否倒序渲染
controller:<Scro11Controller>颖榜,//滾動控制器
primary:<boolean>棚饵,//否是與父級關聯(lián)的主滾動視圖
physics:<ScrollPhysics>煤裙,//物理滾動效果
shrinkWrap:<boolean>,//滾動視圖的范圍是否應由正在查看的內容確定
padding:<EdgeInsets>噪漾,//整個列表的內間距
itemExtent:<double>硼砰,//子元素的高度
prototypeItem:<Widget>,//??
addAutomaticKeepAlives:<boolean>,//是否將子項包在 AutomaticKeepAlive 中addRepaintBoundaries:<boolean>欣硼,//是否添加重復的邊界
addSemanticIndexes:<boolean>题翰,//是否將子項包在 IndexedSemantics 中
cacheExtent:<double>,//緩存數據的可用范圍
children:<List<Widget>>分别,//列表項
semanticChildCount:<int>遍愿,//將提供語義信息的子項數
dragStartBehavior:<DragStartBehavior>,//拖動開始的行為
keyboardDismissBehavior:<dDismissBehavior>耘斩,//鍵盤關閉后的行為
restorationId:<String>沼填,//重繪ID
clipBehavior:<Clip>,//超出邊界的處理方式
)
GridView
GridView(
scrollDirection:<Axis>括授,//滾動方向(水平或垂直)
reverse:<boolean>坞笙,//是否倒序渲染
controller:<ScrollController>,//滾動控制器
primary:<boolean>荚虚,//否是與父級關聯(lián)的主滾動視圖
physics:<ScrollPhysics>薛夜,//物理滾動效果
shrinkWrap:<boolean>,//滾動視圖的范圍是否應由正在查看的內容確定
padding:<EdgeInsets>版述,//整個列表的內間距
gridDelegate:<GridDelegate>梯澜,//用于控制 GridView 中子項的布局
addAutomaticKeepAlives:<boolean>,//是否將子項包在 AutomaticKeepAlive 中addRepaintBoundaries:<boolean>渴析,//是否添加重復的邊界
addSemanticIndexes:<boolean>晚伙,//是否將子項包在 IndexedSemantics 中
cacheExtent:<double>,//緩存數據的可用范圍
children:<List<Widget>>俭茧,// 列表項
semanticChildCount:<int>咆疗,//將提供語義信息的子項數
dragStartBehavior:<DragStartBehavior>,//拖動開始的行為
keyboardDismissBehavior:<dDismissBehavior>母债,//鍵盤關閉后的行為
restorationId:<String>午磁,// 重繪ID
clipBehavior:<Clip>,//超出邊界的處理方式
Text
// 文本標簽
Text("文本標簽”毡们,style:<TextStyle>迅皇,//文本樣式
strutStyle:<StructStyle>,//嚴格的文本樣式
textAlign:<TextAlign>衙熔,// 文本對齊方式
textDirection:<TextDirection>登颓,//文字排列方向1
ocale:<Locale>,//指定顯示的國際化方言
overflow:<TextOverflow>青责,//文本溢出的話怎樣顯示
maxLines:<int>挺据,//最多顯示幾行
);
// 富文本
// 屬性也有很多取具,剩下的和 Text 差不多RichText(text:<InlineSpan>,//文本內容
// 文本輸入框
// 屬性太多了扁耐,知道是用于文本輸入就好了
TextField(...);
Icon
// 字體圖標
Icon(
<IconData>暇检,//字體 Icon 數據
size:<double>,// 大小尺寸
color:<Color>婉称,// 圖標顏色
shadows:<List<Shadow>>块仆,// 陰影
);
// 圖片類// 網絡圖片
Image.network(<String>);
// 本地圖片
Image.file(<String>),
Image.asset(<String>),
Image.memory(<Uint8List>);// 內存圖片
// 應用內圖片
0pacity
調整透明度的組件
0pacity(opacity:<double>,//子控件透明度// 子控件child: <widget>,
GestureDetector
//很重要的一個組件!
// Flutter 中沒有像JS中那樣在元素上綁定事件的機制,//Flutter 所有的對象皆為 widget王暗,所以處理事件也必須用//組件包裹起來悔据,包括其他的處理模式都大同小異。
GestureDetector(
child:<widget>俗壹,//用于處理事件的控件
onTapDown:<Function>,// 單擊觸發(fā)
onTapUp: <Function>,點擊抬起/1
// 執(zhí)行單擊
onTap:<Function>
onTapCancel:<Function>科汗,//單擊取消
// 雙擊觸發(fā)
onDoubleTapDown:<Function>,onDoubleTap:<Function>,
// 執(zhí)行雙擊
onDoubleTapCancel:<Function>绷雏,//雙擊取消
//長按觸發(fā)
onLongPressDown:<Function>onLongPressCancel:<Function>头滔,
//長按取消
onLongPress:<Function>
// 執(zhí)行長按
// 還有很多事件監(jiān)聽回調,這里就不-一羅列了涎显。```
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末坤检,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子期吓,更是在濱河造成了極大的恐慌早歇,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讨勤,死亡現(xiàn)場離奇詭異箭跳,居然都是意外死亡,警方通過查閱死者的電腦和手機悬襟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門衅码,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拯刁,“玉大人脊岳,你說我怎么就攤上這事《獠#” “怎么了割捅?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長帚桩。 經常有香客問我亿驾,道長,這世上最難降的妖魔是什么账嚎? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任莫瞬,我火速辦了婚禮儡蔓,結果婚禮上,老公的妹妹穿的比我還像新娘疼邀。我一直安慰自己喂江,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布旁振。 她就那樣靜靜地躺著获询,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拐袜。 梳的紋絲不亂的頭發(fā)上吉嚣,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音蹬铺,去河邊找鬼尝哆。 笑死,一個胖子當著我的面吹牛甜攀,可吹牛的內容都是我干的较解。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赴邻,長吁一口氣:“原來是場噩夢啊……” “哼印衔!你這毒婦竟也來了?” 一聲冷哼從身側響起姥敛,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤奸焙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后彤敛,有當地人在樹林里發(fā)現(xiàn)了一具尸體与帆,經...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年墨榄,在試婚紗的時候發(fā)現(xiàn)自己被綠了玄糟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡袄秩,死狀恐怖阵翎,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情之剧,我是刑警寧澤郭卫,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站背稼,受9級特大地震影響贰军,放射性物質發(fā)生泄漏。R本人自食惡果不足惜蟹肘,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一词疼、第九天 我趴在偏房一處隱蔽的房頂上張望俯树。 院中可真熱鬧,春花似錦贰盗、人聲如沸聘萨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽米辐。三九已至,卻和暖如春书释,著一層夾襖步出監(jiān)牢的瞬間翘贮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工爆惧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狸页,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓扯再,卻偏偏與公主長得像芍耘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子熄阻,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內容