Flutter從入門到寫出完整App Day11

20.3.25 三

事件監(jiān)聽
路由導航

豆瓣在5s小屏上有問題
如何修復?
中間是可伸縮的, 看Row
Row一旦布局好, 還是有一個固定的寬度
五顆星的寬度是固定死的
三種思路來解決

  1. 手動更改子Widget的大小
    FittedBox做適配, 包裹Row, 盡可能占據(jù)寬度, 可以壓縮
  2. FittedBox
    更好的解決方案, 不同屏幕, 不同尺寸 Container大小變化
    后期會開一節(jié)課講, 自己定義一個單位RPX, 把屏幕分成多少分
  3. rpx/rem/vw 100*rpx

事件監(jiān)聽

原始指針事件(Pointer Events):
描述了屏幕上由觸摸板颤介、鼠標赞赖、指示筆等處罰的指針的位置和移動
手勢識別(Gesture Detector): 在原始事件上的一種封裝

2.1指針事件

代表的是人機界面交互的原始數(shù)據(jù). 一共有四種指針事件
Pointer的原理是什么?
hit test, 確定與屏幕發(fā)生接觸的位置上有哪些Widget
冒泡
不存在取消或停止
原始指針事件使用Listener來監(jiān)聽
按下去的時候來電話了前域、鬧鐘響了 onPointerCancel

監(jiān)聽復雜事件還是需要手勢

2.2手勢識別 Gesture

官方建議開發(fā)中盡可能使用Gesture, 而不是Pointer
長按手勢長按多久? 官方文檔沒有寫

補充個小的知識點
黃色的Container里面放一個小的紅色的Container
直接寫紅色會撐滿
tight約束
alignment: Alignment.center
監(jiān)聽紅色的點擊也不想監(jiān)聽黃色的點擊, 不想做冒泡
默認點擊事件不是每次都會傳到黃色, 偶爾會傳到外面
如何解決?
官方文檔有時也會出錯, 翻譯的是老的
不要讓兩個存在嵌套關系
=> Stack

跨組件事件的傳遞

兩個Widget, Widget層級多
回調(diào)函數(shù)傳好幾層不合適
=> EventBus, 事件總線
訂閱者模式, 通過一個全局的對象來管理
全局事件的傳遞和監(jiān)聽
第三方event_bus

需求: ...

  1. 創(chuàng)建全局的EventBus對象
    開發(fā)中可以搞個全局的文件夾
  2. 發(fā)出事件
  3. 監(jiān)聽事件的類型
    開發(fā)中一般會搞個類

一般不銷毀, 只要程序運行, 就有可能用到

Flutter路由導航

前端朝著路由發(fā)展

路由管理

路由的概念由來已久, 包括網(wǎng)絡路由匿垄、后端路由, 到現(xiàn)在廣為流行的前端路由
核心是一個路由映射表
如: 名字detail映射到DetailPage頁面等
有了這個映射表之后, 我們就可以方便的根據(jù)名字來完成路由的轉發(fā)
Flutter中, Route和Navigator
頁面包裝在路由里面, 包裹成一個Route對象
官方的說法: An abstraction for an entry managed by a Navigator

文件夾改命名

1.2 Route

Route抽象類用的最多的MaterialPageRoute

1.3 Navigator

管理所有的Route的Widget, 通過Stack棧結構來進行管理
不需要手動創(chuàng)建Navigator
MaterialApp默認是有插入Navigator, 需要的時候直接使用
創(chuàng)建一個詳情頁面
默認增加了一個返回按鈕

  1. 普通的跳轉方式
    push、pop
    傳遞過來一些參數(shù), push, 構造器直接傳遞參數(shù)

詳情頁返回數(shù)據(jù) pop
Future的返回值
點擊頂部返回按鈕如何也攜帶數(shù)據(jù)?

  1. 自己來決定返回按鈕是什么樣子

  2. WillPopScope包裹Scaffold
    // 當返回為true時, 可以自動返回(flutter幫助我們執(zhí)行返回操作)
    // 當返回為false時, 自行寫返回代碼
    onWillPop: () {
    return
    }

除了普通的跳轉方式還有命名路由跳轉
開發(fā)中普通的跳轉方式不常用
存在弊端, 商品類App,
首頁 推薦頁 分類頁
點擊都跳轉到詳情頁

命名路由使用

基本跳轉

routes:
首頁也可以配進去, home可以不寫
=> initialRoute: "/"

字符串常量, 很容易寫錯, => 定義成常量

  1. 把所有的常量放在一個文件夾里
    把路由的名稱定義常量
    頁面里static const String routeName = "/about"
    代碼規(guī)范

參數(shù)傳遞
多個參數(shù), 放到對象里面

跳轉時需要動態(tài)參數(shù)
鉤子函數(shù) onGenerateRoute

onUnknownRoute

跳轉到一個統(tǒng)一的錯誤頁面
跳轉到不存在的設置頁面

代碼規(guī)范
router文件夾
router.dart
class Router {
static final Map<String, >
}
兩個好處,

  1. 使用的地方代碼間距
  2. 方便增加路由映射
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市变丧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痒蓬,老刑警劉巖攻晒,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲁捏,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機假丧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來包帚,“玉大人,你說我怎么就攤上這事疯趟⊙赴欤” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纤垂。 經(jīng)常有香客問我磷账,道長,這世上最難降的妖魔是什么吼鱼? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任菇肃,我火速辦了婚禮取募,結果婚禮上,老公的妹妹穿的比我還像新娘斗忌。我一直安慰自己织阳,他們只是感情好,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布唧躲。 她就那樣靜靜地躺著惊窖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪界酒。 梳的紋絲不亂的頭發(fā)上毁欣,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機與錄音凭疮,去河邊找鬼。 笑死寞肖,一個胖子當著我的面吹牛衰腌,可吹牛的內(nèi)容都是我干的右蕊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼帕翻,長吁一口氣:“原來是場噩夢啊……” “哼嘀掸!你這毒婦竟也來了规惰?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤衫仑,失蹤者是張志新(化名)和其女友劉穎堕花,沒想到半個月后缘挽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呻粹,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡等浊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年筹燕,在試婚紗的時候發(fā)現(xiàn)自己被綠了撒踪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片大渤。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡制妄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泵三,到底是詐尸還是另有隱情耕捞,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布烫幕,位于F島的核電站俺抽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏纬霞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一驱显、第九天 我趴在偏房一處隱蔽的房頂上張望诗芜。 院中可真熱鬧,春花似錦埃疫、人聲如沸伏恐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胳蛮,卻和暖如春斗幼,著一層夾襖步出監(jiān)牢的瞬間蜕窿,已是汗流浹背桐经。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工气堕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骗爆。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像犀呼,于是被迫代替她去往敵國和親外臂。 傳聞我的和親對象是個殘疾皇子宋光,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容