【flutter 的簡單學習總結】


 dart語言學習
	內置類型:

	數值型-Number

	布爾型-Boolean

	鍵值對-Map

	字符串-String

	列表-List

	數值型的操作

運算符: +-*/ 、 ~/%

常用屬性: isNaN、isEven、isOdd

常用方法:abs()round()floorl()ceil()toInt()、toDouble()


constfinal所賦值不可變

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>[

    ...

    ]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章