dart語言學習
內置類型:
數值型-Number
布爾型-Boolean
鍵值對-Map
字符串-String
列表-List
數值型的操作
運算符: +、 - 、* 、/ 、 ~/ 、 %
常用屬性: isNaN、isEven、isOdd
常用方法:abs()、round()、floorl()、ceil()、toInt()、toDouble()
const 和 final所賦值不可變
List(數組)創建
創建List:var list[1,2,3];
創建不可變的List:var list = const [1,2,3];
構造創建:var list=new List();
常用操作
[],length
Map
Map創建
創建Map;var language = {'first':'Dart','second':'java'};
創建不可變Map:var language = const{'first':'Dart','second':'java'};
構造創建:var language = new Map();
常用操作
dart中方法也是對象
=> expr 是 {return expr}的縮寫 ,只適用於一個表達式
方法都有返回值,如果沒有指定就會返回null
方法的返回類型和參數類型可以省略
匿名方法
(參數1,參數2,...){
方法體...
return返回值
}
匿名方法特性
void main(){
var func=( str ){
print("hello----$str");
}; func(30);
var list2={"h","e","l","l","o"};
閉包是爲了 在某個方法外部獲取該方法內的局部變量的值 比如這裏面的 count,且 多次調用該閉包 閉包是會對count的值進行保存的 所以打印的數值是遞增的。
閉包函數的返回值一定是一個函數
閉包的作用就是 使得外部能獲取到某方法裏的局部變量的值
?表示 如果person對象爲空 則不進行 name屬性的訪問了 防止報錯
as 表示 類型的強制轉換 對比oc
?.非空判斷,與kotlin使用規則一致,as 類型轉換,與kotlin規則一致,真不愧是一家公司推得,類型判斷 is is!一致, .. 級聯操作,與建造者模式,builder模式使用規則一致。
call 方法也可以是有參數的 person(‘tets’,30)
dart接口比較特殊,類既可以被繼承,也可以被實現,但是類被當做接口使用並不美觀易用,建議實現只有抽象方法的抽象類(當做接口),繼承已經實現的實用類,以接近java的方式易於理解和使用。
dart 中的每一個類 都可以被當作接口使用
使用 implements
Mixins 多繼承 必須用extends. 主父類..with...二級父類列表
class d extends a with b,c{}
繼承存在順序關係
重寫 []操作符:對象本身不支持 【】去取出屬性的,但是使用操作符可以實現
想要實現對象直接進行大小的比較:只要在該類中進行 operator 複寫就行了
flutter 框架學習
Flutter是谷歌的移動UI框架,可以快速在IOS和Android上構建高質量的原生用戶界面。Flutter可以與現有的代碼一起工作,並且它是免費、開源的。
特點:
1、跨平臺:Linux、Android、IOS、Fuchsia
2、原生用戶界面:它是原生的,讓我們體驗更好、性能更好
3、開源免費:完全開源,可以進行商用
參照本課程,自己理解寫的博客文檔,大家可以看一下
https://www.jianshu.com/p/afee6508f9cc
《Flutter從入門到進階實戰攜程網App》課程地址:https://coding.imooc.com/class/321.html
Flutter生態環境介紹
第三方組件:https://github.com/Solido/awesome-flutter
120fps:因爲使用GPU渲染
vscode
創建flutter項目 flutter create demo
運行項目 flutter run
更新flutter ----flutter upgrade
1、StatelessWidget與StatefulWidget的區別:後者用於動態的組件比如進度條,前者用於靜態的,後者比前者使用的偏多
2、Flutter upgrate命令更新Fluter SDK
3、vscode常用控制虛擬機的快捷鍵:R P O Q
TextWidget文本組件講解
TextWidget ----textAlign(對齊屬性)
maxLines ----1 TextOverFlow(行數)
style ---- TextStyle(樣式)
fontSize、color
ContainerWidget容器組件
body:Center(
child:Container(
child: new Text(
"hello flutter",
style:TextStyle(fontSize:40.0),
)
alignment:Alignment.center,
width:500.0,
height:400.0,
color:Colors.lightBlue,
padding:EdgeInsets.fromLTRB(左上右下)
margin:EdgeInsets.all(10.0),
decoration:new BoxDecoration(
.......
)
)
)
Padding 內部邊距
Margin 外部邊距
container修飾器decoration
LinearGradient實現漸變色
container內邊距EdgeInsets.fromLTRB(左上右下)
container內邊距EdgeInsets.all(10.0)
ImageWidget 圖片組件講解
ImageWidget屬性:
scale 縮放(值越大,圖片越小)
fit 顯示屬性(拉伸、填充、寬|高對齊)
colorBlendMode 疊加模式
repeat 重複
圖片加載模式:Image.asset 資源加載
Image.network 網絡加載
Image.file 本地加載
Image.memory 內存加載
ListViewWidget列表組件
橫向列表和自定義組件
簡書 https://www.jianshu.com/p/afee6508f9cc
橫向列表顧名思義就是,可以通過水平方向進行一個列表的滑動,左右滑動列表Item,即可瀏覽ListView的數據了。
scrollDirection屬性的使用
- Axis.vertical:垂直方向
- Axis.horizontal 水平方向
非常簡單,我們直接修改屬性值就可以完成不同方向的ListView
可以看到,我們在new的時候,傳遞了一個List對象給構造器,通過List的generate方法快速生成一個1000大小的列表。
然後在類的構造器中去接收到這個List參數,然後給類的ListView組件使用,達到動態數據,
list的數據源是由外部接收的,這樣我們的ListView數據將會非常靈活。
動態列表
ListView.builder{
itemCount: items.length,//items是傳來的變量
itemBuilder:(context,index){
return new ListTile(//定義列表item
title:new Text......
GridView.count(
padding :
crossAxisSpacing:
children:<Widget>[
...
]
【flutter 的簡單學習總結】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.