Material組件提供了豐富的組件,太豐富的組件致使不知道使用哪一個組件好,本文開始介紹部分Flutter的經常使用組件,用以實現基本的頁面,以Android頁面爲基礎,對照實現。android
首先介紹Scaffold組件,Scaffold是一個路由頁骨架,使用它能夠很方便的拼裝出一個基礎頁面。git
Scaffoldgithub
構造函數:微信
Scaffold({
Key key,
this.appBar,
this.body,
this.floatingActionButton,
this.floatingActionButtonLocation,
this.floatingActionButtonAnimator,
this.persistentFooterButtons,
this.drawer,
this.endDrawer,
this.bottomNavigationBar,
this.bottomSheet,
this.backgroundColor,
this.resizeToAvoidBottomPadding,
this.resizeToAvoidBottomInset,
this.primary = true,
this.drawerDragStartBehavior = DragStartBehavior.start,
this.extendBody = false,
this.extendBodyBehindAppBar = false,
this.drawerScrimColor,
this.drawerEdgeDragWidth,
})
複製代碼
包括:appBar(導航欄),body(主體內容),drawer(抽屜),bottomNavigationBar(底部導航)app
初始化,只顯示Scaffold,給了一個藍色的背景。函數
MaterialApp(
home: Scaffold(
backgroundColor: Colors.blue,
),
);
複製代碼
appBar:flex
appBar: AppBar(
leading: Icon(Icons.arrow_back),
title: const Text('標題'),
actions: <Widget>[
IconButton(
icon: Icon(
Icons.add_shopping_cart,
color: Colors.white,
),
onPressed: null,
),
IconButton(
icon: Icon(
Icons.settings,
color: Colors.white,
),
onPressed: null),
],
),
複製代碼
body:this
scalffold的主體部分,用於展現界面的主要內容;一般使用Row,Column,ListView做爲子組件,用於顯示主體內容。spa
body: Container(
color: Colors.white,
child: Center(
child: Text('center'),
),
),
複製代碼
drawer:code
Scaffold的左側滑入的抽屜效果,一般child是一個ListView,ListView中包含DrawerHeader做爲頭部和其餘item做爲選項。
drawer: Drawer(
child: ListView(
children: <Widget>[
DrawerHeader(
child: Text(
'DrawerHeader',
),
decoration: BoxDecoration(
color: Colors.blue,
),
),
Text('item1'),
Text('item2'),
],
),
),
複製代碼
注意,在使用Drawer的時候去掉leading,這樣會點擊自動添加的leading,滑出drawer,不然只能手勢滑入。
bottomNavigationBar:
底部導航欄,一般包括3-5個bottomNavigationBarItem做爲子組件,子組件能夠包括圖標和文案。
bottomNavigationBar: BottomNavigationBar(
items: [
BottomNavigationBarItem(
icon: Icon(Icons.home),
title: Text('Home'),
backgroundColor: Colors.white,
),
BottomNavigationBarItem(
icon: Icon(Icons.person),
title: Text('Mine'),
backgroundColor: Colors.white),
],
),
複製代碼
這樣,一個Activity的appBar,body,bottomNavigationBar,drawer都有了,基本能夠知足一個頁面的使用。
github:github.com/damengzai/f…
更多關注微信公衆號:Flutter入門