iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
Mobile Development

Flutter App 開發實戰系列 第 18

Flutter Dialog 介紹 [DAY 18]

  • 分享至 

  • xImage
  •  

Dialog 在 app 中非常常見,且用途廣泛,從確認到提醒,從簡單到複雜的客製化介面,今天我們就要來好好了解一下在 flutter 中 Dialog 是如何被建構跟被使用的。


Dialog

是目前常見的 material design dialog 的基本類別
接下來我們要提到的 AlertDialog , SimpleDialog 都是基於他來實現的

AlertDialog

用來通知使用者需要確認的狀況,具有可以操作的標題內容與按鈕

AlertDialog({
    Key key,
    Widget title,
    EdgeInsetsGeometry titlePadding,
    TextStyle titleTextStyle,
    Widget content,
    EdgeInsetsGeometry contentPadding: const EdgeInsets.fromLTRB(24.0, 20.0, 24.0, 24.0), 
    TextStyle contentTextStyle,
    List<Widget> actions,
    EdgeInsetsGeometry actionsPadding: EdgeInsets.zero,
    VerticalDirection actionsOverflowDirection,
    double actionsOverflowButtonSpacing,
    EdgeInsetsGeometry buttonPadding,
    Color backgroundColor,
    double elevation,
    String semanticLabel,
    EdgeInsets insetPadding: _defaultInsetPadding,
    Clip clipBehavior: Clip.none,
    ShapeBorder shape,
 })

SimpleDialog

提供用戶多個選項可以選擇時使用

SimpleDialog({
    Key key,
    Widget title,
    EdgeInsetsGeometry titlePadding: const EdgeInsets.fromLTRB(24.0, 24.0, 24.0, 0.0),
    TextStyle titleTextStyle,
    List<Widget> children,
    EdgeInsetsGeometry contentPadding: const EdgeInsets.fromLTRB(0.0, 12.0, 0.0, 16.0),
    Color backgroundColor,
    double elevation,
    String semanticLabel,
    ShapeBorder shape
})

showDialog

顯示 builder 中的 Dialog,也可以接收 Dialog 的回傳值

Future<T> showDialog <T>(
{@required BuildContext context,
WidgetBuilder builder,
bool barrierDismissible: true, //dialog 背後的屏障被點擊時是否關閉 dialog
Color barrierColor,
bool useSafeArea: true,
bool useRootNavigator: true,
RouteSettings routeSettings,
)

上一篇
來做個使用者列表吧 | TextField 搜尋 [DAY 17]
下一篇
Flutter Dialog 範例 [DAY 19]
系列文
Flutter App 開發實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言