国产精品主播叶子闺蜜_三级高清精品国产_99久久精品国产麻豆_国产精品无码免费专区午夜

歡迎您光臨深圳塔燈網絡科技有限公司!
電話圖標 余先生:13699882642

網站百科

為您解碼網站建設的點點滴滴

flutter 基礎知識

發表日期:2018-08 文章編輯:小燈 瀏覽次數:1518

linux安裝配置flutter

參考官方配置,很容易就配置完畢后https://flutterchina.club/setup-linux/,可能在執行 flutter doctor會報device 找不到的問題,連上手機或者模擬器再執行一遍,基本就不會報錯了。

flutter的層設計

Flutter總共分為四層,從下到上分別是:dart:ui,Rendering,Widgets,Material。參照下圖:


image

dart:ui

dart:ui是flutter底層引擎所提供的一個dart庫,是flutter對dart標準庫的一個擴展。它提供了一套基于canvas的繪圖api,也包含了用于跟操作系統交互的模塊mojo,當然,還包括了所有dart標準庫。dart:ui提供最基礎的底層api,要直接使用它,你必須寫非常多的代碼,進行大量的運算:比如在每一幀中計算每個組件的坐標,編碼工作很繁瑣。一般來說,開發者不會直接使用dart:ui,但如果他們需要寫一些特殊的應用,比如開發游戲,那可能就需要在dart:ui的基礎上去構建自己的框架。

Rendering

Rendering層是布局(排版)抽象層,它把dart:ui層api抽象封裝成大量的Render對象,免除了大量布局坐標的手動計算,并還對布局數據進行了緩存處理,提升了渲染效率。開發者使用層層嵌套的構造函數來構建一個render對象樹,當發生用戶交互或者數據發生改變時,需要顯式更新對應的render對象,即更新UI。 這樣的設計與其他UI系統非常類似,比如:web的dom,android與ios的視圖層等。因為遵循了傳統的開發思路,喜歡這種方式的開發者可以直接使用本層的api進行開發。

Widgets

Widgets層是對Rendering層對象的封裝層,它引入element對象以及StatefulBuilder來管理底層的render對象,開發者使用不可變的Widget對象來創建UI,當數據發生變化的時候,再重新構建一個新的widget樹即可,不再需要使用分離的代碼來維護UI(Rendering層就要用一部分代碼構建初始UI,另一部分更新UI)。這一層應該就是flutter默認的或者說最基礎的組件庫,你可以繼承并修改它們,做成屬于自己的組件。

Material

Material層相對來說最容易理解,它們就是使用Widgets層對象,實現了Material Design的頂層UI組件。

Dart

語言

  • Language Tour, 講解語言基礎 - https://www.dartlang.org/guides/language/language-tour 212

  • Library Tour, 講解標準庫 - https://www.dartlang.org/guides/libraries/library-tour 12

  • Effective Dart,講解編碼最佳實踐 - https://www.dartlang.org/guides/language/effective-dart 10

  • Futures, 講解異步編程之Futures - https://www.dartlang.org/tutorials/language/futures 12

  • Streams, 講解異步編程之Streams - https://www.dartlang.org/tutorials/language/streams 6

  • Sound Dart, 講解Dart的類型系統 - https://www.dartlang.org/guides/language/sound-dart 1

  • Dart API文檔 - https://api.dartlang.org/ 29

工具

  • Pub即Dart包管理器入門 - https://www.dartlang.org/tools/pub/get-started 11

  • 定制Dart靜態分析 - https://www.dartlang.org/guides/language/analysis-options 2

創建一個flutter project

  1. 選擇 File>New Flutter Project
  2. 選擇 Flutter application 作為 project 類型, 然后點擊 Next
  3. 輸入項目名稱 (如 myapp), 然后點擊 Next
  4. 點擊 Finish
  5. 等待Android Studio安裝SDK并創建項目.

上述命令創建一個Flutter項目,項目名為myapp,其中包含一個使用Material 組件的簡單演示應用程序。

在項目目錄中,您應用程序的代碼位于 lib/main.dart.

第一次創建會比較慢,在國內鏡像url都已經配置好的情況下,稍微等待幾分鐘就會創建完成。

包管理

每個flutter都是有一個包管理配置文件pubspec.yaml,在這里可以引入外部包,可以引入字體庫和一些本地圖片等資源

name: flutter_layout description: A new Flutter application.dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.2dev_dependencies: flutter_test: sdk: flutteruses-material-design: true assets: - images/fonts:- family: Schylerfonts:- asset: fonts/Schyler-Regular.ttf- asset: fonts/Schyler-Italic.ttfstyle: italic- family: Trajan Profonts:- asset: fonts/TrajanPro.ttf- asset: fonts/TrajanPro_Bold.ttfweight: 700 

有狀態的部件(Stateful widget)

Stateless widgets 是不可變的, 這意味著它們的屬性不能改變 - 所有的值都是最終的.

Stateful widgets 持有的狀態可能在widget生命周期中發生變化. 實現一個 stateful widget 至少需要兩個類:

一個 StatefulWidget類。 一個 State類。 StatefulWidget類本身是不變的,但是 State類在widget生命周期中始終存在. 

在Flutter中構建布局

未完待續...


本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.juherenli.com/18042.html
相關APP開發