寫一個(gè)HelloWorld程序
? ? ? ? 環(huán)境搭建好后鸣个,按照慣例就是寫一個(gè)HelloWorld程序,下面用最簡(jiǎn)單的結(jié)構(gòu)囤萤,寫一個(gè)HelloWorld,并介紹一下相關(guān)的Dart語(yǔ)法是趴。
? ? ? ?在環(huán)境搭建好之后,寫HelloWorld 程序之前唆途,首先要?jiǎng)?chuàng)建一個(gè)flutter 項(xiàng)目文件。
? ? ? ?那如何創(chuàng)建一個(gè)flutter 項(xiàng)目文件呢窘哈?
? ? ? ?請(qǐng)小伙伴們看另一篇簡(jiǎn)書:
????????????????http://www.reibang.com/p/3a7cf9ba0b3d
? ? ? ? 已經(jīng)了解的小伙伴們,可以跳過繼續(xù)閱讀(●'?'●)图筹。
一、HelloWorld整體代碼
????????先快速寫一個(gè)最簡(jiǎn)單的結(jié)構(gòu)體远剩,這個(gè)界面只包含兩部分骇窍,頭部訂單的藍(lán)色bar條和屏幕中間區(qū)域的內(nèi)容。(人狠話不多腹纳,上代碼)
????????這段代碼是寫在 根目錄\lib\main.dart?文件中,這就是Flutter的主文件嘲恍。
import 'package:flutter/material.dart';
//主函數(shù)(入口函數(shù))? Dart的函數(shù)
void main() =>runApp(MyApp());?
// 聲明MyApp類?
class MyApp extends StatelessWidget{?
????//重寫build方法?
????@override
????Widget build(BuildContext context){
????//返回一個(gè)Material風(fēng)格的組件
????return MaterialApp(
????????????title:'Welcome to Flutter',
????????????home:Scaffold(
????????????????//創(chuàng)建一個(gè)Bar,并添加文本
????????????????appBar:AppBar( title:Text('Welcome to Flutter'),
? ? ?????????????),
????????????????//在主體的中間區(qū)域淹辞,添加一個(gè)hello world 的文本
????????????????body:Center( child:Text('Hello World'),
?????????????????),
?????????????),
? ? ? ?);
? ? }
}
在Android Studio 軟件中是這種效果,老規(guī)矩上圖:
????????寫完后打開終端象缀,運(yùn)行flutter run,等待一小會(huì),就會(huì)看到虛擬機(jī)中顯示了Hello World的內(nèi)容央星。上圖:
二、Dart語(yǔ)法Function函數(shù)
????????Dart是面向?qū)ο蟮恼Z(yǔ)言胁黑,即使是函數(shù)也是對(duì)象州泊,并且屬于Function類型的對(duì)象丧蘸。這意味著函數(shù)可以分配給變量或作為參數(shù)傳遞給其他函數(shù)遥皂。當(dāng)然你也可以像JavaScript一樣,調(diào)用一個(gè)函數(shù)演训。
????????比如我們寫Hello World中的第2行,就是一個(gè)函數(shù)拂募。
void main() =>runApp(MyApp());
????????因?yàn)檫@個(gè)函數(shù)體里只有一行代碼,所以可以直接使用=>來省略{}窟她,只有函數(shù)體里只有一行時(shí),才可以使用录肯,否則請(qǐng)使用大括號(hào)吊说。 有點(diǎn)像ES6 里面的箭頭函數(shù)论咏。感興趣的小伙伴可以去研究一下ES6語(yǔ)法颁井,相信大家都已經(jīng)知道了。
? ??????學(xué)習(xí)Dart語(yǔ)法時(shí)你要記住一條蚤蔓,Dart里一切皆對(duì)象糊余,包括數(shù)字和函數(shù)单寂。。宣决。
三昏苏、上面用到的 StatefulWidget 和?StatelessWidget
? ? ? ? · StatefulWidget : 具有可變狀態(tài)的窗口部件尊沸,也就是你在使用應(yīng)用的時(shí)候就可以隨時(shí)變化贤惯,比如我們常見的進(jìn)度條,隨著進(jìn)度不斷變化孵构。
? ? ? ? · StatelessWidget:不可變狀態(tài)窗口部件,也就是你在使用時(shí)不可以改變蜡镶,比如固定的文字(寫上后就在那里了恤筛,死也不會(huì)變了)官还。
上面的HelloWorld 代碼就繼承了不可變窗口部件 StatelessWidget毒坛。
四、?再說一下粘驰,在VSCode中如何熱加載
????????用VSCode編寫Flutter不好的一點(diǎn)就是要手動(dòng)加載更新應(yīng)用,這至少會(huì)降低我們15%的工作效率愕掏。
? ? ? ? 當(dāng)我們運(yùn)行flutter run以后,會(huì)有一段白色文字的提示饵撑,說明了我們可以作的事情:
????來看幾個(gè)重點(diǎn)的唆貌,也是一般常用的:
????????r 鍵:點(diǎn)擊后熱加載,也就算是重新加載吧锨咙。
????????p 鍵:顯示網(wǎng)格,這個(gè)可以很好的掌握布局情況,工作中很有用钮孵。
????????o 鍵:切換android和ios的預(yù)覽模式眼滤。
????????q 鍵:退出調(diào)試預(yù)覽模式。
? ? ? ? 如果你覺的這太麻煩了诅需,我們可以開啟Debug模式,這時(shí)就可以實(shí)現(xiàn)真正的熱加載了(保存堰塌,效果立即就會(huì)改變),但有時(shí)報(bào)錯(cuò)料睛,也挺煩人的。上圖:
? ??這個(gè)基本的結(jié)構(gòu)很重要恤煞,小伙伴們可以多練習(xí)幾遍施籍,把基本結(jié)構(gòu)記熟練。丑慎。。
? ??一起加油ba竿裂。 阿巴阿巴阿巴。进副。。