Flutter 一切皆widget程序員
leading:導航欄左返回視圖(widget),默認push到下一個頁面,左視圖自帶返回箭頭,點擊方法系統已實現。bash
可是最外層 是 return MaterialApp(); 包裹,是沒有返回按鈕的網絡
若是要自定義圖標:架構
leading: IconButton(
disabledColor: Colors.red,
icon: Icon(Icons.menu),
onPressed: null
),
複製代碼
IconButton 原本單獨寫一篇文章,可是寫成筆記先記着 IconButton 設置顏色的時候,注意 onPressed 是否實現,爲了習慣統一,能夠默認設置 onPressed:(){}; 爲何這樣說呢?接着往下看:app
Color:
設置了圖標點擊回調,則用於按鈕內圖標的顏色;
highlightColor:
按鈕處於向下(按下)狀態時按鈕的輔助顏色;
splashColor
按鈕處於向下(按下)狀態時按鈕的主要顏色;
disabledColor:
沒設置圖標點擊回調,則用於按鈕內圖標的顏色
複製代碼
IconButton(
//onPressed 爲null,圖標顏色默認爲灰色調,能夠經過disabledColor設置此時圖標顏色
//onPressed 非null,圖標顏色默認爲白色,能夠經過color設置此時圖標顏色
//其餘狀態顏色設置,參考前面顏色介紹
// color: Colors.red,
disabledColor: Colors.green,
icon: Icon(Icons.add),
onPressed: null
)
複製代碼
注意點: 設置title ,默認居中,可是當咱們設置 actions 個數大於等於2的時候,title會偏移,因此這句 centerTitle: true 仍是須要寫上的less
學習過程不斷嘗試,以iOS職業思惟去搞,發現問題: 場景:首頁導航欄,此時外層是MaterialApp,自定義leading屬性,建立一個IconButton ,總體架構是:工具
MaterialApp(
-home: Scaffold(
appBar: new AppBar(
leading: 自定義
......使用Navigator.push報錯
可是body 裏面使用Navigator.push 正常
複製代碼
push到一個新Widget, 報錯信息:佈局
Navigator operation requested with a context that does not include a Navigator.學習
百度,可是看到一個複雜的方案 外層使用StatelessWidget ,將路由跳轉功能封裝到StatefulWidget中 ??看完代碼(具體本身百度),個人天,這麼麻煩,若是是後期加的需求,確定要加班搞,放棄,尋找更簡便方法,沒辦法,偷懶一下,站在巨人肩上看的遠,可是,得換個巨人了,那就換ui
在須要點擊跳轉的子View外部包一層Builder以下:
child: Builder(builder: (context) {
return GestureDetector(
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context)=>NewWigets()));
},
child: Text("本身想"),
);
}
複製代碼
上述是思路,我得 根據我實際場景改代碼,信手捏來:
leading: Builder(builder: (context) {
return GestureDetector(
// 這是照着實驗檢測可行,註釋一下了
// onTap: () {
// Navigator.pushNamed(context, tableVC);
// },
// child: Icon(Icons.menu),
// 我來自定義一下,
child: IconButton(
disabledColor: Colors.red,
icon: Icon(Icons.menu),
onPressed:(){
// Navigator.pushNamed(context, tableVC);
Navigator.push(context, MaterialPageRoute(builder: (context)=>DetailWigets()));
},
)
);
},
複製代碼
代碼複製過去就能夠直接用,就是那麼優秀,註釋掉的代碼能夠刪掉,跳轉的DetailWigets記得換哈,【斜眼笑】
模糊的學習了一些,處處看了看,簡單的學了幾個UI控件,暫時沒有記錄,只是記錄了剛入門碰到的問題,後續會記錄UI ,佈局,網絡,實戰等app的相關內容
針對環境配置,一直想學flutter,基於沒有太多精力和心思,環境早就配置好了,就沒有記錄了,百度就能夠弄好,畢竟mac配置下來仍是簡單。
mac電腦 + Xcode + AndroidStudio ,VS Code 我也裝了,可是用AndroidStudio就很好的支持編寫flutter了, flutter和 Android 一個廠裏的,本身人嘛,工具選個喜歡的就行。
路漫漫其修遠兮,吾將上下而求索
——致程序員逝去的青春複製代碼