壹、Material/Cupertino 組件與手勢說明
參見: Building user interfaces with Flutter
一、Using Material Components
經過Basic Widgets的介紹後,相信大家已經對Material組件的樣貌十分熟悉。而我們在規劃App的架構時,便會先思考產品頁面欲呈現的區塊的功能,並依照需求放置「靜態」元件,待頁面放置確認後,再循序添加互動、頁面跳轉等功能。下方即是一個基本的Scaffold,放置靜態元件的頁面規劃範例。
AppBar
leading: Navigation menu(側邊導航欄菜單)
title: 標題文字
actions: 搜尋按鈕
body: “Hello World” 文字串
floatingActionButton: 浮動加號按鈕
Material Widgets使用範例
1 | import 'package:flutter/material.dart'; |
Material Widgets使用範例
- 輸出結果

二、Using Cupertino (iOS-style) Widgets
通常我們稱Material Components為” Android Style “的組件樣貌,若是今天想要創建IOS-style的組件,即可參考Cupertino (iOS-style) widgets的使用方式!


參見: Cupertino (iOS-style) widgets
Cupertino widgets使用範例
我們把剛剛的Material Scaffold佈局換成Cupertino的寫法,由輸出結果可以看到兩者的元件在繪製與程式使用上的差異,而在使用Cupertino元件時,則需要引入對應套件,import ‘package:flutter/cupertino.dart’;
1 | import 'package:flutter/cupertino.dart';//引入Cupertino套件 |
Cupertino widgets使用範例
- 輸出範例

三、Handling gestures: 手勢處理
在互動上,我們使用GestureDetector,處理使用者進行觸摸、點擊、拖動等手勢事件,並使用onTop()設定回傳的操作。
它也常被用於許多其他元件中,像是IconButton、ElevatedButton和FloatingActionButton等,所具有onPressed(),就是處理點擊時將相應的操作。
GestureDetector使用範例
在此範例中,我們用onTop()設定當使用者點擊時,會輸出’MyButton was tapped!’文字到終端機中
1 | import 'package:flutter/material.dart'; |
- 輸出結果
左邊是終端機畫面,右邊是頁面畫面,此為按下五次按鈕後的樣子
