Flutter基礎組件之Scaffold
Scaffold是實現Material Design的布局結構。也就是說, MaterialApp 的 child 是 Scaffold Widget。
在Material設計中定義的單個界面上的各種布局元素,在 Scaffold 中都有支持,比如 左邊欄(Drawers)、snack bars、以及 bottom sheets。
Scaffold 有下面幾個主要屬性:
appBar:顯示在界面頂部的一個 AppBar,也就是 Android 中的 ActionBar 、Toolbar
body:當前界面所顯示的主要內容 Widget
floatingActionButton:Material設計中所定義的 FAB,界面的主要功能按鈕
persistentFooterButtons:固定在下方顯示的按鈕,比如對話框下方的確定、取消按鈕
drawer:側邊欄控件
backgroundColor: 內容的背景顏色,默認使用的是 ThemeData.scaffoldBackgroundColor 的值
bottomNavigationBar: 顯示在頁面底部的導航欄resizeToAvoidBottomPadding:類似于 Android 中的 android:windowSoftInputMode=”adjustResize”,控制界面內容 body 是否重新布局來避免底部被覆蓋了,比如當鍵盤顯示的時候,重新布局避免被鍵盤蓋住內容。默認值為 true。
顯示 snackbar 或者 bottom sheet 的時候,需要使用當前的 BuildContext 參數調用 Scaffold.of 函數來獲取 ScaffoldState 對象,然后使用 ScaffoldState.showSnackBar 和 ScaffoldState.showBottomSheet 函數來顯示。